El siguiente código implementa la obtención de conjuntos de datos de una lista de elementos.
namespace Ejemplos
{
using System;
using System.Collections.Generic;
using System.Linq;
/// <summary>
/// Clase que contiene la lógica de ejecución.
/// </summary>
class Program
{
/// <summary>
/// Método principal.
/// </summary>
/// <param name="args">Argumentos.</param>
static void Main(string[] args)
{
List<int> numeros = new List<int>();
int tamañoConjunto = 15;
int numeroConjunto = 1;
for (int iterador = 1; iterador <= 100; iterador++)
{
numeros.Add(iterador);
}
Console.WriteLine("Números:");
Console.WriteLine(string.Join(",", numeros));
Console.WriteLine();
Console.WriteLine(string.Concat("Tamaño del conjunto: ", tamañoConjunto));
Console.WriteLine();
// Se recorre la lista de números y se extraen los conjuntos.
for (int iterador = 0; iterador < numeros.Count(); iterador+=tamañoConjunto)
{
Console.WriteLine(string.Format("Conjunto: {0}", numeroConjunto));
IEnumerable<int> conjunto = numeros.Skip(iterador).Take(tamañoConjunto);
Console.WriteLine(string.Join(",", conjunto));
Console.WriteLine();
numeroConjunto++;
}
Console.WriteLine();
Console.WriteLine("Presiona cualquier tecla para salir...");
Console.ReadKey();
Environment.Exit(0);
}
}
}

El siguiente código implementa el algoritmo de ordenamiento burbuja en una aplicación de consola.
namespace OrdenamientoBurbuja
{
#region [Bibliotecas de clases]
using System;
using System.Linq;
#endregion
/// <summary>
/// Clase que encapsula la lógica del algoritmo de ordenamiento burbuja.
/// </summary>
public class Program
{
/// <summary>
/// Método de ejecución principal.
/// </summary>
/// <param name="args">Argumentos.</param>
public static void Main(string[] args)
{
Console.WriteLine("Ingresa los numeros a ordenar separados por comas(,) y presiona la tecla Enter.");
int[] vector = Console.ReadLine().Replace(" ", "").Split(',').Select(x => Convert.ToInt32(x)).ToArray();
Console.WriteLine();
Console.WriteLine("Vector ordenado:");
Console.WriteLine(string.Join(",", Ordenar(vector)));
Console.WriteLine();
Console.WriteLine("Presiona una tecla para salir.");
Console.ReadKey();
}
/// <summary>
/// Método que implementa el algoritmo de ordenamiento burbuja a un vector´.
/// </summary>
/// <param name="vector">Vector que contiene los elementos a ordenar.</param>
/// <returns>Vector ordenado.</returns>
private static int[] Ordenar(int[] vector)
{
int auxiliar;
for (int i = 0; i < vector.Length; i++)
{
for (int j = 0; j < vector.Length - i - 1; j++)
{
if (vector[j + 1] < vector[j])
{
auxiliar = vector[j + 1];
vector[j + 1] = vector[j];
vector[j] = auxiliar;
}
}
}
return vector;
}
}
}

El siguiente código implementa el algoritmo de ordenamiento por selección en una aplicación de consola.
namespace OrdenacionXSeleccion
{
#region [Bibliotecas de clases]
using System;
using System.Linq;
#endregion
/// <summary>
/// Clase que encapsula la lógica del algoritmo de ordenamiento por selección.
/// </summary>
public class Program
{
/// <summary>
/// Método de ejecución principal.
/// </summary>
/// <param name="args">Argumentos.</param>
public static void Main(string[] args)
{
Console.WriteLine("Ingresa los numeros a ordenar separados por comas(,) y presiona la tecla Enter.");
int[] vector = Console.ReadLine().Replace(" ", "").Split(',').Select(x => Convert.ToInt32(x)).ToArray();
Console.WriteLine();
Console.WriteLine("Vector ordenado:");
Console.WriteLine(string.Join(",", Ordenar(vector)));
Console.WriteLine();
Console.WriteLine("Presiona una tecla para salir.");
Console.ReadKey();
}
/// <summary>
/// Método que implementa el algoritmo de ordenación por selección a un vector´.
/// </summary>
/// <param name="vector">Vector que contiene los elementos a ordenar.</param>
/// <returns>Vector ordenado.</returns>
private static int[] Ordenar(int[] vector)
{
int menor, posicion, auxiliar;
for (int i = 0; i < vector.Length - 1; i++)
{
menor = vector[i];
posicion = i;
for (int j = i + 1; j < vector.Length; j++)
{
if (vector[j] < menor)
{
menor = vector[j];
posicion = j;
}
}
if (posicion != i)
{
auxiliar = vector[i];
vector[i] = vector[posicion];
vector[posicion] = auxiliar;
}
}
return vector;
}
}
}

El siguiente código implementa el algoritmo de ordenamiento por inserción en una aplicación de consola.
namespace OrdenacionXInsercion
{
#region [Bibliotecas de clases]
using System;
using System.Linq;
#endregion
/// <summary>
/// Clase que encapsula la lógica del método de ordenación por inserción.
/// </summary>
public class Program
{
/// <summary>
/// Método de ejecución principal.
/// </summary>
/// <param name="args">Argumentos.</param>
public static void Main(string[] args)
{
Console.WriteLine("Ingresa los numeros a ordenar separados por comas(,) y presiona la tecla Enter.");
int[] vector = Console.ReadLine().Replace(" ","").Split(',').Select(x => Convert.ToInt32(x)).ToArray();
Console.WriteLine();
Console.WriteLine("Vector ordenado:");
Console.WriteLine(string.Join(",", Ordenar(vector)));
Console.WriteLine();
Console.WriteLine("Presiona una tecla para salir.");
Console.ReadKey();
}
/// <summary>
/// Método que implementa el algoritmo de ordenación por inserción a un vector´.
/// </summary>
/// <param name="vector">Vector que contiene los elementos a ordenar.</param>
/// <returns>Vector ordenado.</returns>
private static int[] Ordenar(int[] vector)
{
int auxiliar;
for (int i = 1; i < vector.Length; i++)
{
auxiliar = vector[i];
for (int j = i - 1; j >= 0 && vector[j] > auxiliar; j--)
{
vector[j + 1] = vector[j];
vector[j] = auxiliar;
}
}
return vector;
}
}
}
