#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演算法維基百科 本人是在看...