选择排序定义:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
class Program { static void Main(string[] args) { int[] array = new[] { 234, 632, 23, 643, 2, 6, -2, 423, 2342,43 }; Console.WriteLine("排序前:"); Console.WriteLine(string.Join(",", array)); SelectSort(array); Console.WriteLine("排序后:"); Console.WriteLine(string.Join(",", array)); Console.ReadKey(); } /// <summary> /// 选择排序 /// </summary> /// <param name="sources">目标数组</param> private static void SelectSort(int[] sources) { for (int i = 0, len = sources.Length - 1; i <= len; i++) { // 假设最小值索引 int minIndex = i; // 循环遍历一遍找到最小值的索引 for (int j = i + 1; j <= len; j++) { // 如果最小值比其他元素大,重新设置最小值的索引 if (sources[minIndex] > sources[j]) { minIndex = j; } } // 临时变量交换最小值的位置; int temp = sources[i]; sources[i] = sources[minIndex]; sources[minIndex] = temp; } } }