插入排序C++實現

x286 9年前發布 | 2K 次閱讀 C/C++

//⒈ 從第一個元素開始,該元素可以認為已經被排序
//⒉ 取出下一個元素,在已經排序的元素序列中從后向前掃描
//⒊ 如果該元素(已排序)大于新元素,將該元素移到下一位置
//⒋ 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置
//⒌ 將新元素插入到下一位置中
//⒍ 重復步驟2~5

include<iostream>

include<array>

using namespace std;

template<class T> void insertion_sort(T&, int);

int main() { array<int, 10> arr={1,3,2,5,4,6,8,7,9,0}; insertion_sort(arr, arr.size()); //輸入數組和數組大小,因為array是類,所以我們沒法拿arr當數組首地址用,我們直接引用array類 for(int i = 0; i < 10; i++) { cout << arr[i] << endl; }

cin.get(); return 0; }

template<class T> void insertion_sort(T& arr, int count) { int p = 0; for(int i = 1; i < count; i++) { auto number = arr[i]; for(p = i; p > 0 && number < arr[p-1]; p--) { arr[p] = arr[p-1]; } arr[p] = number; } } </pre>

 本文由用戶 x286 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!