您好,登錄后才能下訂單哦!
本篇文章為大家展示了C語言中怎么實現(xiàn)插入排序與直接選擇排序,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
聲明待排序元素類型
/*-------------------------- typedef.h 方便修改待排序元素類型 -------------------------------------*/ #ifndef TYPEDEF_H #define TYPEDEF_H typedef int T; #endif
插入排序:
/*--------------------------------------------------------------------------------------- Insertion_sort.h 直接插入排序 對以數(shù)組形式給出的元素排序 時間復(fù)雜度為(逆序數(shù))N(N-1)/4 = O(N^2),并且在最壞情形下達(dá)到這個值 最好情形下運行N次,最壞情形下運行2+3+…+N ------------------------------------------------------------------------------------------------*/ #ifndef INSERTION_SORT_H #define INSERTION_SORT_H #include "typedef.h" //直接插入排序 void Insertion_sort(T *a, int n) { for(int i = 1; i != n; ++i) { T temp = a[i]; int j = i - 1; for(; j >= 0 && temp < a[j]; --j ) a[j + 1] = a[j]; a[j + 1] = temp; } } #endif
直接選擇排序:
/*---------------------------------------------- DirectSelection_sort.h 直接選擇排序 時間復(fù)雜度O(N^2) --------------------------------------------------------*/ #ifndef DIRECTSELECTION_SORT_H #define DIRECTSELECTION_SORT_H #include "typedef.h" #include "swap.h" //直接選擇法排序 void DirectSelection_sort(T*a, int n) { for(int i = 0; i != n; ++i) { int k = i; for(int j = i; j != n; ++j) if(a[j] < a[k]) k = j; swap(a[k],a[i]); } } #endif
上述內(nèi)容就是C語言中怎么實現(xiàn)插入排序與直接選擇排序,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。