每天乙個小程式(16) 交換排序之快速排序2

2021-06-21 07:53:59 字數 558 閱讀 1582

快速排序,同樣的是用遞迴的演算法,不過在partition函式中用另一種方法,設立兩個變數low和high,乙個為第乙個元素位置,乙個為最後乙個元素位置,low和high儲存在指標量i和j中,將r[low]儲存到r[0]中,從r[high]開始向左檢查(j--),發現比r[0]小的元素,則將r[high]放到r[low]中,再從low向右檢查(i++),發現比r[0]大的元素,則將r[low]放到r[high]中,不斷迴圈,知道兩個指標量i

#include struct datatype1

;typedef int datatype;

void display(datatype a)

} int partition(datatype r, int low, int high)

{ int i,j;

i = low;

j = high;

r[0] = r[low];

while(i < j)

{ while((r[j] >= r[0]) && (i < j)) //向左檢查

j--;

if(i < j)//若i

每天乙個小程式(9) 鏈隊

include include typedef int datatype typedef struct node qnode typedef struct lqueue 鏈隊 初始化 lqueue init lqueue 入隊 void in lqueue lqueue q,datatype x 判...

每天乙個python小技巧

使用場景 如果需要多次重複的產出檔案,可以通過如下的方式來根據時間戳建立新的資料夾,用來區分儲存檔案。def getcurrenttime dirpath 根據時間戳,建立指定輸出檔案 param dirpath return if os.path.exists dirpath time.strft...

每天乙個shell小知識(for)

在實際工作環境中,經常會遇到某項任務需要多次執行的情況,而每次執行時僅僅是處理的物件不一樣,其他命令完全相同。如 根據伺服器清單檢查各個主機的存活狀態 根據ip位址黑名單設定拒絕訪問的防火牆策略等。這樣繁瑣的重複任務時,if語句已經不能滿足需求。則我們需要for迴圈語句。使用for迴圈時,需要指定乙...