C語言中文網 目錄

Java數組排序:Java選擇排序法

假設當前存在一個 int 類型的數組 number,該數組中的元素依次是 13、15、 24、99、4 和 1。如果使用冒泡排序進行兩兩相鄰比較,第一趟排序后的結果如下:
13、15、24、4、1、99

第二趟排序后的結果如下:
13、15、4、1、24、99

第三趟排序后的結果如下:
13、4、1、15、24、99

第四趟排序后的結果如下:
4、1、13、15、24、99

第五趟排序后的結果如下:
1、4、13、15、24、99

使用選擇排序法也可以對上述數組中的元素進行排序,但是它與冒泡排序不同。選擇排序是指每一趟從待排序的數據元素中選出最大(或最小)的一個元素,順序放在已排好序的數列的最后,直到全部待排序的數據元素排完。例如,使用選擇排序法重新對 number 數組中的元素進行排序,那么第一趟排序后的結果如下:
13、15、24、1、4、99

第二趟排序后的結果如下:
13、15、4、1、24、99

第三趟排序后的結果如下:
13、1、4、15、24、99

第四趟排序后的結果如下:
4、1、13、15、24、99

第五趟排序后的結果如下:
1、4、13、15、24、99

例 1

利用選擇排序方法通過編程的方式實現對 number 數組的排序,并輸出已排序的數組元素。代碼如下:
int[] number={13,15,24,99,4,1};
String end="\n";
int index;
for(int i=1;i<number.length;i++)
{
    index=0;
    for(int j=1;j<=number.length-i;j++)
    {
        if(number[j]>number[index])
        {
            index=j;    //查找最大值
        }
    }
    end=number[index]+" "+end;    //定位已排好的數組元素
    int temp=number[number.length-i];
    number[number.length-1]=number[index];
    number[index]=temp;
    System.out.print("【");
    for(int j=0;j<number.length-i;j++)
    {
        System.out.print(number[j]+" ");
    }
    System.out.print("】"+end);
}

執行上述代碼,查看每一趟排序后的結果,運行結果如下所示。
【13 15 24 1 4 】99
【13 15 4 1 】24 99
【13 1 4 】15 24 99
【4 1 】13 15 24 99
【1 】4 13 15 24 99 

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo