bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

數據結構的各種排序-創新互聯

文章目錄
        • 內部排序算法性能比較
        • 1. 插入排序
          • 1.1 直接插入排序
          • 1.2 折半插入排序
          • 1.3 希爾排序(不穩定)
        • 2. 交換排序
          • 2.1 冒泡排序
          • 2.2 快速排序
        • 3. 選擇排序
          • 3.1 簡單選擇排序(不穩定)
          • 3.2 堆排序(不穩定)
        • 4. 歸并排序
        • 5. 基數排序

專注于為中小企業提供網站建設、成都網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業康平免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了近千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。內部排序算法性能比較
算法種類最好情況平均情況最壞情況空間復雜度穩定性
直接插入排序O(n)O(n^2)O(n^2)O(1)穩定
冒泡排序O(n)O(n^2)O(n^2)O(1)穩定
簡單選擇排序O(n^2)O(n^2)O(n^2)O(1)不穩定
希爾排序O(1)不穩定
快速排序O(nlog2n)O(nlog2n)O(n^2)O(log2n)不穩定
堆排序O(nlog2n)O(nlog2n)O(nlog2n)O(1)不穩定
2-歸路排序O(nlog2n)O(nlog2n)O(nlog2n)O(n)穩定
基數排序O(d(n+r))O(d(n+r))O(d(n+r))O( r )穩定
1. 插入排序

插入排序:每次將一個待排序的記錄按其關鍵字大小插入前面已排好的子序列,直到全部記錄插入完成。

1.1 直接插入排序

示例:對以下記錄進行排序
{49,38,65,97,76,13,27,49'}

原始記錄:49,38,65,97,76,13,27,49';
//()括號內的記錄為已經排序好的子序列
第一趟:(38,49),65,97,76,13,27,49';
第二趟:(38,49,65),97,76,13,27,49';
第四趟:(38,49,65,97),76,13,27,49';
第五趟:(38,49,65,,76,97),13,27,49';
第六趟:(13,38,49,65,76,97),27,49';
第七趟:(13,27,38,49,65,76,97),49';
第八趟:(13,27,38,49,49',65,76,97);
1.2 折半插入排序

折半插入:將比較和移動操作分離。先查找位置再移動元素。(只適用于有序表)

void InsertSort(ElemType A[],int n){int i,j,low,mid,high;
   for(i=2;i<=n;i++){   //折半查找
       A[0]=A[i];
       low=1;
       high=i-1;
       while(low<=high){  mid=(low+high)/2;
          if(A[mid]>A[0]){  high=mid-1;//查找左半子表
          }else{  low=mid+1;//查找右半子表
          }
          //移動元素
          for(j=i-1;j>=high+1;--j){A[j+1]=A[j];//統一后移元素,空出插入位置
          }
          A[high+1]=A[0];//插入操作
      }
   }
}
1.3 希爾排序(不穩定)

希爾排序:先追求表中元素部分有序,在逐漸逼近全局有序

算法思想:
1.先將待排序記錄分割為特殊"子表",即把相隔某個"增量"的記錄組成一個子表。
2.對各個子表分別進行直接插入排序。
3.最后對全局記錄進行一次插入排序。

示例:對以下記錄進行排序
{50,26,38,80,70,90,8,30,40,20}

原始序列:50,26,38,80,70,90,8,30,40,20

d=5:50,8,30,40,20,90,26,38,80,70;//(50,90),(26,8),(38,30),(80,40),(70,20)
d=3:26,8,30,40,20,80,50,38,90,70;//將間隔為3的分割為一組
d=1:8,20,26,30,38,40,50,70,80,90;//直接插入排序
2. 交換排序

交換:是指根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置

2.1 冒泡排序

基本思想:從前往后(或從后往前)兩兩比較相鄰元素的值,若為逆序,則交換它們,直到序列比較完。稱之為第一趟冒泡排序。
示例:對以下記錄進行排序
{49,38,65,97,76,13,27,45}

原始序列:49,38,65,97,76,13,27,45
//每趟排序都會將一個元素放置到其最終位置上
第一趟:38,49,65,76,13,27,45,97;
第二趟:38,49,65,13,27,45,76,97;
第三趟:38,49,13,27,45,65,76,97;
第四趟:38,13,27,45,49,65,76,97;
第五趟:13,27,38,45,49,65,76,97;
2.2 快速排序

快速排序:基于分治法

算法思想:
1.在待排序表L[1...n]中任取一個元素pivot作為樞軸(基準,通常取首元素)
2.通過一趟排序將待排序表劃分為獨立的兩部分L[1...k-1]和L[k+1...n]
3.使L[1...k-1]中所有元素小于pivot,L[k+1...n]中所有元素大于pivot
4.pivot放在了其最終位置L(k)上,以上過程稱為一趟快速排序.
5.重復上述過程......

示例:對以下記錄進行排序
{49,38,65,97,76,13,27,49'}

原始序列:49,38,65,97,76,13,27,49';
取pivot=49;
待補充......
3. 選擇排序 3.1 簡單選擇排序(不穩定)

簡單選擇排序:每一趟在待排序元素中選取關鍵字最小的元素加入有序子序列
示例:對以下記錄進行排序
{49,38,65,97,76,13,27,49'}

原始序列:49,38,65,97,76,13,27,49'
//每次選取關鍵字最小的元素,與前面相應位置進行交換
第一趟:13,38,65,97,76,49,27,49';//13與49交換位置
第二趟:13,27,65,97,76,49,38,49';//27與38交換位置
第三趟:13,27,38,97,76,49,65,49';//38與65交換位置
第四趟:13,27,38,49,76,97,65,49';//49與97交換位置
第五趟:13,27,38,49,49',97,65,76;//49'與76交換位置
第六趟:13,27,38,49,49',65,97,76;//65與97交換位置
第七趟:13,27,38,49,49',65,76,97;//76與97交換位置
3.2 堆排序(不穩定) 4. 歸并排序 5. 基數排序

概念:不基于比較和移動元素進行排序,而基于關鍵字各位的大小進行排序。借助多關鍵字排序的思想對但邏輯關鍵字進行排序的方法

算法思想:
1.將整個關鍵字拆分為d位(組)
2.按照各個關鍵字權重遞增的次序,做d趟"分配"和"收集"
3.分配:順序掃描各個元素,根據當前處理的關鍵字位,將元素插入相應的隊列
4.收集:把各個隊列中結點依次出隊并鏈接

基本操作 :
(1)按“各”位進行分配;
(2)從左到右進行收集;

示例:對如下10個記錄進行排序
{520,211,438,888,007,111,985,666,233,168}
1.按個位進行分配

0123456789
520211233985666007438
111996888
168

收集:520,211,111,233,985,666,996,007,438,888,168

2.按十位進行分配

0123456789
007211520233666985996
111438168888

收集:007,211,111,520,233,438,666,168,985,888,996

3.按百位進行分配

0123456789
007111211438520666888985
168233996

收集:007,111,168,211,233,438,520,666,888,985,996

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站題目:數據結構的各種排序-創新互聯
文章來源:http://vcdvsql.cn/article34/dihjpe.html

成都網站建設公司_創新互聯,為您提供網站內鏈電子商務網站維護App設計網站營銷定制網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管