【排序】選擇排序算法

1.簡單選擇排序(Simple Selection Sort)

在要排序的一組數(shù)中,選擇最小的記錄與第一個(gè)位置的記錄交換;然后在剩下的數(shù)中,選擇最小的記錄與第二個(gè)位置的記錄交換...以此類推,直到第n-1個(gè)數(shù)與第n個(gè)數(shù)比較為止。

  • 選擇排序示例:

第一排為初始表,前面斜體加粗記錄為有序表,緊接著加粗記錄為待被交換記錄,有序表后斜體加黑記錄為符合條件的待交換記錄。

外層循環(huán)
i = 1 23 15 30 1 27 16 54 56 28 10
i = 2 1 15 30 23 27 16 54 56 28 10
i = 3 1 10 30 23 27 16 54 56 28 15
i = 4 1 10 15 23 27 16 54 56 28 30
i = 5 1 10 15 16 27 23 54 56 28 30
i = 6 1 10 15 16 23 27 54 56 28 30
i = 7 1 10 15 16 23 27 54 56 28 30
i = 8 1 10 15 16 23 27 28 56 54 30
i = 9 1 10 15 16 23 27 28 30 54 56
i = 10 1 10 15 16 23 27 28 30 54 56
  • 選擇排序代碼示例:
    private static void simpleSelectSort(int a[], int n)
    {
        for (int i = 0; i < n; i++)
        {
            int min = i;
            for (int j = i+1; j < n; j++)
            {
                if (a[j] < a[min])
                {
                    min = j;
                }
            }
            if (min != i)
            {
                int tmp = a[i];
                a[i] = a[min];
                a[min] = tmp;
            }
        }
    }

2.二元選擇排序

3.堆排序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 經(jīng)典排序算法 - 選擇排序Selection sort 顧名思意,就是直接從待排序數(shù)組里選擇一個(gè)最小(或最大)的數(shù)...
    LeafRead閱讀 1,023評論 0 4
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,298評論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,819評論 0 15
  • 概述排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的...
    Luc_閱讀 2,371評論 0 35
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,348評論 0 2

友情鏈接更多精彩內(nèi)容