返回列表 發帖

選擇排序

選擇排序法(Selection Sort)是排序演算法的一種,也是一種簡單容易理解的演算法,其概念是反覆從未排序的數列中取出最小的元素,加入到另一個的數列,結果即為已排序的數列。運算流程如下:

1.從未排序的數列中找到最小的元素。
2.將此元素取出並加入到已排序數列最後。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:



然而實作上通常不使用額外的數列來儲存已排序的部分,而使用原地(In-place)的方式來完成,數列的左半部表示已排序部分,右半部表示未排序部分,不另外使用數列。從未排序部分找到最小的元素,利用交換的方式將元素放置已排序部分的尾端。運算流程如下:

1.從未排序的數列中找到最小的元素。
2.將此元素與已排序部分的尾端元素進行交換。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int n[6]=[12,57,-6,-32,0,23};
  7.     cout<<"排序前:";
  8.     for (int i=0;i<6;i++)
  9.         cout<<n[i]<<" ";
  10.         cout<<endl;
  11.         
  12.     cout<<"排序後:";
  13.     for (int i=0;i<6;i++)
  14.         cout<<n[i]<<" ";
  15.         cout<<endl;     
  16.     system("pause");
  17.     return 0;
  18. }
複製代碼

TOP

返回列表