C語言的選擇排序算法的基本思想就是依次選出數組最小的數放到數組的前面,在C語言中我們可以使用兩個for循環,先從數組的第二個元素開始往后遍歷,找出最小的數放到第一個位置,再從剩下數組中找出最小的數放到第二個位置,以此類推,直到數組有序。先判斷最小的數的下標是不是 0,如果不是則說明最小的數不是第一個元素,則將這個數與第一個元素互換位置,這樣一輪下來最小的那個數就被找到并放到了最左邊。
C語言選擇排序實現代碼如下:
void print(int a[], int n ,int i){ cout<<"第"<<i+1 <<"趟 : "; for(int j= 0; j<8; j++){ cout<<a[j] <<" "; } cout<<endl; } /** * 數組的最小值 * * @return int 數組的鍵值 */ int SelectMinKey(int a[], int n, int i) { int k = i; for(int j=i+1 ;j< n; ++j) { if(a[k] > a[j]) k = j; } return k; } /** * 選擇排序 * */ void selectSort(int a[], int n){ int key, tmp; for(int i = 0; i< n; ++i) { key = SelectMinKey(a, n,i); //選擇最小的元素 if(key != i){ tmp = a[i]; a[i] = a[key]; a[key] = tmp; //最小元素與第i位置元素互換 } print(a, n , i); } } int main(){ int a[8] = {3,1,5,7,2,4,9,6}; cout<<"初始值:"; for(int j= 0; j<8; j++){ cout<<a[j] <<" "; } cout<<endl<<endl; selectSort(a, 8); print(a,8,8); }
回答所涉及的環境:聯想天逸510S、Windows 10。
C語言的選擇排序算法的基本思想就是依次選出數組最小的數放到數組的前面,在C語言中我們可以使用兩個for循環,先從數組的第二個元素開始往后遍歷,找出最小的數放到第一個位置,再從剩下數組中找出最小的數放到第二個位置,以此類推,直到數組有序。先判斷最小的數的下標是不是 0,如果不是則說明最小的數不是第一個元素,則將這個數與第一個元素互換位置,這樣一輪下來最小的那個數就被找到并放到了最左邊。
C語言選擇排序實現代碼如下:
回答所涉及的環境:聯想天逸510S、Windows 10。