选择排序(Selection Sort)是一种简单的排序算法,其实现原理如下:
/// <summary> /// 选择排序算法 /// </summary> public static void SelectionSortAlgorithmMain() { int[] array = { 64, 25, 12, 22, 11, 99, 3, 100 }; Console.WriteLine("原始数组: "); PrintArray(array); SelectionSortAlgorithm(array); Console.WriteLine("排序后的数组: "); PrintArray(array); } static void SelectionSortAlgorithm(int[] arr) { int n = arr.Length; for (int i = 0; i < n - 1; i++) { // 在未排序部分中找到最小元素的索引 int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // 将最小元素与未排序部分的第一个元素交换位置 int temp = arr[minIndex]; arr[minIndex] = arr[i]; arr[i] = temp; } } static void PrintArray(int[] arr) { int n = arr.Length; for (int i = 0; i < n; ++i) { Console.Write(arr[i] + " "); } Console.WriteLine(); }
复制
选择排序算法的时间复杂度为O(n^2),其中n是待排序数组的大小。尽管其时间复杂度较高,但选择排序算法比较简单易懂,并且在某些特定情况下,例如对于小规模的数组来说,其性能可能表现得比其他高级排序算法要好。