编程基础——排序(选择)(简单选择)
1 // 在冒泡排序的基础上理解选择排序 2 // 一趟循环之后取最小的/最大的放最上面的 或是取最小的或最大的放最下面 3 // 假设有数组arrary = new int[5]{1,2,3,5,4},并要求降序排序。 4 // 这里,我们选择最大的放上面。 5 6 // 测试 7 private void Test() 8 { 9 var arrary = new int[5]{1,2,3,5,4}; 10 SelectSort(arrary); 11 } 12 13 // 选择排序,降序 14 private void SelectSort(int[] arrary) 15 { 16 int maxIndex = 0; 17 for(int i = 0; i < arrary.Length - 1; i++) 18 { 19 maxIndex = i; 20 count = arrary.Length - i; 21 for(int j = i + 1; j < count; j ++) 22 { 23 if(arrary[j] > arrary[maxIndex]) 24 { 25 maxIndex = j; 26 } 27 } 28 if(i != maxIndex) 29 { 30 SwapData(arrary, i, maxIndex); 31 } 32 } 33 } 34 35 // 交换数组中指定两个位置的数据 36 private void SwapData(int[] arrary, int i, int j) 37 { 38 var temp = arrary[i]; 39 arrary[i] = arrary[j]; 40 arrary[j] = temp; 41 }