排序和順序統計量(演算法導論)

2021-07-09 03:06:45 字數 1157 閱讀 8009

人一生別太狂,指不定誰輝煌

總結排序演算法的執行時間

演算法最壞執行時間

平均期望執行時間

是否是原址排序

插入排序o(

n2) o(

n2) 是

歸併排序o(

nlgn

) o(

nlgn

) 否

堆排序o(n

lgn)

……是快速排序o(

n2) o(

nlgn

)期望 是

計數排序o(

k+n)

o(k+n)

否基數排序o(

d(k+

n)) o(

d(k+

n))

桶排序o(n

2)o(

n)選擇排序、快速排序、希爾排序、堆排序不是穩定的排序演算法,而氣泡排序、插入排序、歸併排序和基數排序是穩定的排序演算法

堆排序演算法的設計

heapsort(a)

}//構建大根堆

buildmaxheap(a)

}//維護堆的性質

maxheapify(a,i)else

if(rif(laragest!=i)

}

優先佇列十分類似於堆排序,只是在使用方法的命名和在結構上略有差異。

優先佇列是一種用來維護一組元素構成的集合s的資料結構,其中的每乙個元素都有乙個相關的值,稱為關鍵字。

普通快速排序的演算法設計

quicksort(a,p,r)

}partition(a,p,r)

}exchange(a[i+1],a[r]);

return i+1

;}

快速排序隨機化版本的演算法

randompartition(a,p,r)
countsort(a,b,k)

for(j=1 to a.

length)

for(i=1 to k)

for(j=a.

length downto 1)

}

演算法導論 中位數和順序統計量

在乙個由n個元素組成的集合中,第i個順序統計量是該集合中第i小的元素。乙個中位數是它所屬集合的 中點元素 當n為奇數時,中位數是唯一的,位於i n 1 2處 當n為偶數時,存在兩個中位數,分別位於i n 2和i n 2 1處。如果不考慮n的奇偶性,中位數總是出現在i n 1 2 處 下中位數 和i ...

演算法導論學習筆記(二)排序和順序統計量

總結各種排序演算法,時間複雜度與空間複雜度,優缺點等。堆排序的時間複雜度是 nlogn n log n 堆排序具有空間原址性。堆是乙個陣列,可以看成一棵近似的完全二叉樹。除了最底層之外,該樹完全填滿,給定乙個節點i,可以很容易地計算其父節點為floor i 2 左子節點為2i,右子節點為2i 1.最...

演算法導論之中位數和順序統計量(3)

在乙個由n個元素組成的集合中,第i個順序統計量是該集合中的第i小的元素。本章的演算法正是找出乙個互異的元素集合中的第i小的元素。單個的最小值和最大值 在乙個有n個元素的集合中,我們要確定其中最小的元素,必須要進行n 1次比較,正如minmum a 演算法顯示的這樣 minmun a min a i ...