直接選擇排序算法是一種簡單直觀的排序算法。它首先在未排序序列中找到最小(大)元素,存放到排序序列的其起始位置,然后再從剩余未排序的序列元素中繼續尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素排序完畢。
代碼實現如下:
#include <iostream>using namespace std;void PRint(int a[], int n ){ cout<<n <<":"; for(int j= 0; j<n; j++) { cout<<a[j] <<" "; } cout<<endl; } void InsertSort(int a[], int len) { for (int i=0; i<len-1; i++) { int k = i; int key = a[i]; for (int j=i+1; j<len; j++) //找出剩余數據中最小的數 { if (a[j]< key) { k = j; key = a[j]; } } if (k!=i) swap(a[i], a[k]); } } int main(){ int a[9] = {3,1,5,7,2,4,9,6,6}; InsertSort(a,9); print(a,9); } 排序結果如下:9:1 2 3 4 5 6 6 7 9
以上的算法是由小到大的排序方法,如果要由大到小排序,只需修改代碼:if (a[j]< key) 為 if (a[j] > key) ,其他代碼保持不變。
新聞熱點
疑難解答
圖片精選