编程基础——排序(选择)(简单选择)

 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 }

 

posted @ 2019-05-07 20:30  CasonZhao  阅读(256)  评论(0编辑  收藏  举报