深入淺出理解排序演算法之 堆排序

2021-06-26 01:51:56 字數 793 閱讀 7976

#include

void

swap(

int&a,

int&b)

// 維護最小堆

void

adjustminheap(

int*a,

intpos,

intlen)

else }

a[pos] = temp; }

/* 堆排序

基本思想:對於

n個元素的序列進行堆排序,先將其建成堆(最小堆:上一層的比本層小,一次遞推)。以根結點與第

n個結點交換,調整前n-

1個結點成為堆,再以根節點與第

n-1個結點進行交換,重複上述操作,直到整個序列有序。 特點

:時間複雜度:

o(nlogn) */

void

myminheapsort(

int*array,

intlen) }

intmain(

intargc,

const

char

* argv) ;

intlength =

sizeof

(array)/

sizeof

(array[

0]);

// 堆排序

myminheapsort

(array, length);

for(i =

0; i < length; i++)

printf

("\n");

return0;

}

深入淺出理解排序演算法之 氣泡排序

include void swap int a,int b 氣泡排序 基本思想 第一趟冒泡得到乙個關鍵字最小的記錄,第二趟得到次小值 針對每一趟 兩兩相鄰紀錄的關鍵字,如果反序則交換直到沒有反序為止 特點 時間效率,總共 n 1趟冒泡,對 j個記錄的表進行一趟冒泡需要 j 1次關鍵字比較,空間效率 ...

深入淺出學演算法 排序專題 快速排序

之前給大家講過快排了,今天再講一遍 排序大師今天在課上給徒弟們教快速排序o n log n 總結分三步走 原序列以2為分隔數,第一趟排序結束,分為三組序列 1 2 4 53 序列 發現元素個數為1,結束 序列 元素個數為1,結束 序列 發現元素個數 1,選擇3為分隔數,分為三組序列 空 3 5 4 ...

深入淺出理解Paxos演算法

paxos演算法是萊斯利 蘭伯特 英語 leslie lamport latex中的 la 於1990年提出的一種基於訊息傳遞且具有高度容錯特性的一致性演算法。paxos演算法一開始非常難以理解,但是一旦理解其實也並不難,之所以難理解其實是因為作者講的故事難理解。paxos演算法維基百科 本人是在看...