之前給大家講過快排了,今天再講一遍……
排序大師今天在課上給徒弟們教快速排序o(n*log_n),總結分三步走
原序列以2為分隔數,第一趟排序結束,分為三組序列:① 1 ② 2 ③ 4
53 ;序列①發現元素個數為1,
結束;序列②元素個數為1,結束;序列③發現元素個數》
1,選擇3為分隔數,
分為三組序列:① 空 ② 3 ③ 5
4;序列①空,結束,序列②元素個數為1,
結束;序列③元素個數=
2>
1,選擇4為分隔數,分為三組序列:① 空 ② 4 ③ 5 排序完成
對於區間[l,r]選擇分隔數可以隨便選,可以選第乙個a[l],
也可以選最後乙個a[r],也可以選a[
(l+r)/2
],希望大家動手畫出樹形圖,加深理解
第一行輸入乙個整數n(1
<=n<=
100000
)第二行輸入n個整數ai(0
<=a[i]
<=10^
9)
從小到大輸出n個數,每相鄰兩個數之間有乙個空格
554
321
123
45
掌握快排的核心思想,一定畫一遍遞迴的過程樹
不理解快排的人可以看快速排序[雖然可以用冒泡 ]
#include
using
namespace std;
intmain()
深入淺出理解排序演算法之 氣泡排序
include void swap int a,int b 氣泡排序 基本思想 第一趟冒泡得到乙個關鍵字最小的記錄,第二趟得到次小值 針對每一趟 兩兩相鄰紀錄的關鍵字,如果反序則交換直到沒有反序為止 特點 時間效率,總共 n 1趟冒泡,對 j個記錄的表進行一趟冒泡需要 j 1次關鍵字比較,空間效率 ...
深入淺出理解排序演算法之 堆排序
include void swap int a,int b 維護最小堆 void adjustminheap int a,intpos,intlen else a pos temp 堆排序 基本思想 對於 n個元素的序列進行堆排序,先將其建成堆 最小堆 上一層的比本層小,一次遞推 以根結點與第 n個...
深入淺出學Hive Hive引數
第一部分 hive 引數 hive.exec.max.created.files 說明 所有hive執行的map與reduce任務可以產生的檔案的和 預設值 100000 hive.exec.dynamic.partition 說明 是否為自動分割槽 預設值 false hive.mapred.re...