資料結構 排序演算法

2021-09-22 07:46:13 字數 1279 閱讀 1087

資料結構排序演算法

一,排序基本概念

演算法的穩定性

演算法的穩定性與演算法的效能無關
內部排序

元素存放在在記憶體中的排序
外部排序

元素不斷在內外存之間移動的排序
二,插入排序

直接插入排序

適用於順序儲存和鏈式儲存

1.1 源**:

void insertsort(elemtype a,int n)

}

2.2 效能分析

比較次數為o(nlog2^n)

時間複雜度o(n^2)

3 希爾排序

不穩定且僅適用於順序儲存

3.1 源**:

void shellsort(elemtype a,int n)

}if(flag==false)

return ;

}

1.2效能分析

空間效率 o(1)

時間複雜度 o(n^2)

快速排序

2.1 源**

//快速排序,不穩定,

void quicksort(elemtype a,int low,int high)

void adjustdown(elemtype a,int k,int len)

}//for

a[k]=a[0];

}//堆排序

void heapsort(elemtype a,int len)//for

}//向上調整堆

void adjustup(elemtype a,int k)

//for

while(j<=mid) a[k++]=b[j++];

while(j<=high) a[k++]=b[j++];

}//合併

void mergesort(elemtype a,int low,int high){

if(low

1.2 效能分析

空間效率 o(n)

時間效率 o(nlog2^n)

六,基數排序

效能分析

穩定空間效率 o® r個佇列

時間效率 o(d(n+r))

七,歸納總結

資料結構 排序演算法

include include define maxitem 100 typedef char keytype 5 typedef int elemtype typedef struct rec elemnode maxitem 氣泡排序演算法 void bubblesort elemnode r,...

資料結構 排序演算法

排序演算法分為內部排序和外部排序兩大類。內部排序 在計算機記憶體中完成的排序演算法 外部排序 不能再記憶體中文完成,必須在磁碟或者磁帶上完成的排序演算法 內部排序是研究的重點問題,通常我們講的八大排序演算法也主要是講的內部排序演算法。排序演算法的穩定性和時間空間複雜度 本文重點介紹以下幾種排序演算法...

資料結構 排序演算法

直接插入排序是指將r i r n 插入到已經有序的r 1 r i 1 序列中。r 0 是乙個哨兵,起到作為邊界條件並作為暫存單元的作用。實際上,一切為簡化邊界條件而引入的附加節點 元素 均可稱為哨兵。例如單鏈表中的頭結點。對於有n個記錄的集合,要進行n 1趟排序。其最優時間複雜度是o n 平均時間複...