选择排序
C#实现选择排序代码如下
#region 选择排序 /// <summary> /// 选择排序 /// </summary> /// <param name="arr">待排序的数组</param> /// <param name="isAsc">是否升序排序,默认为升序排序</param> public static void SelectSort(int [] arr,bool isAsc=true) { if (arr == null) return; for(int i = 0; i < arr.Length - 1; i++) { int idx = i; // 最小(大)元素下标 /* * 获取 arr[i+1]到arr[arr.Length-1]的最小(大)下标 */ for (int j = i + 1; j < arr.Length; j++) { // 升序排序 if (isAsc) { if (arr[j] < arr[idx]) { idx = j; // 最小值小标,用于与arr[i]交换 } } // 降序排序 else { if (arr[j] > arr[idx]) { idx = j; // 最大值小标,用于与arr[i]交换 } } } // arr[idx]与arr[i]交换 if(arr[i] != arr[idx]) { int temp = arr[i]; arr[i] = arr[idx]; arr[idx] = temp; } } } #endregion