首頁 > 後端開發 > C++ > 主體

選擇排序的C程序

PHPz
發布: 2023-08-28 13:13:05
轉載
676 人瀏覽過

選擇排序的C程序

選擇排序是一種攻擊性演算法,它的工作原理是從陣列中找到最小的數字,然後將其放在第一個位置。下一個要遍歷的陣列將從最小數字所在位置的下一個索引開始。

讓我們舉個例子來更清楚地說明這個概念。

我們有一個陣列 {6, 3, 8, 12, 9} 在這個陣列中最小的元素是 3。所以我們將 3 放在第一個位置,之後數組會看起來像 {3, 6, 8, 12, 9} 。現在我們將再次找到最小的數字,但這次我們不會在搜尋中考慮 3,因為它在它的位置。找到下一個最小元素 6,在第二個位置建立一個包含 6 的數組,然後再次在數組中搜索,直到數組排序完畢。

選擇排序演算法的工作原理-

選擇排序演算法遵循以下步驟

讓我們採用一個陣列{20, 12 , 23, 55 ,21}

  • 將陣列的第一個元素設定為最小值。

    最小值= 20

  • 將最小值與下一個元素進行比較,如果它小於最小值分配該元素為最小值。這樣做直到數組末尾。

    與12 : 20 > 12 比較,最小值= 12

    #與23 : 12 #與55 比較:12

    與21 比較:12

  • 將最小值放在陣列的第一個位置(索引0)。

    Array = {12, 20 ,23, 55, 21}

  • #對於下一個迭代,開始從第一個未排序元素開始排序。

    Array = {12, 20 ,23, 55, 21}

    從 20 開始搜索,下一個放置最小值的元素。

    迭代2:

    最小值= 20

    與23 比較:20

    與55 比較:20

    與21 比較:20

    最小值不變,

    陣列= {12, 20 , 23, 55, 21}

    迭代3:

    最小值= 23。

    與55 比較:23

    與21 比較: 23 > 21 ,最小值= 21

    ## 最小值移至索引= 2

    Array = {12, 20, 21, 55, 23}

    迭代4:

    ##最小值= 55

    #與23 比較: 23

    最小值移至索引 3 陣列 = { 12 , 20 , 21 , 23 , 55 }

  • 範例
#include 
int main() {
   int arr[10]={6,12,0,18,11,99,55,45,34,2};
   int n=10;
   int i, j, position, swap;
   for (i = 0; i < (n - 1); i++) {
      position = i;
      for (j = i + 1; j < n; j++) {
         if (arr[position] > arr[j])
            position = j;
      }
      if (position != i) {
         swap = arr[i];
         arr[i] = arr[position];
         arr[position] = swap;
      }
   }
   for (i = 0; i < n; i++)
      printf("%d\t", arr[i]);
   return 0;
}
登入後複製

輸出

0 2 6 11 12 18 34 45 55 99
登入後複製

以上是選擇排序的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!