linux sort 演算法 筆記 排序演算法總結

2021-10-17 06:06:56 字數 1052 閱讀 2806

一、直接插入排序

最簡單的排序,其基本思想是:每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。

void insertsort(int* pdata,intcount)

if(!exchange_flag) return;

倒序(最糟情況)

第一輪:10,9,8,7->10,9,7,8->10,7,9,8->7,10,9,8(交換3次)

第二輪:7,10,9,8->7,10,8,9->7,8,10,9(交換2次)

第一輪:7,8,10,9->7,8,9,10(交換1次)

迴圈次數:6次 ;交換次數:6次

其他:第一輪:8,10,7,9->8,10,7,9->8,7,10,9->7,8,10,9(交換2次)

第二輪:7,8,10,9->7,8,10,9->7,8,10,9(交換0次)

第一輪:7,8,10,9->7,8,9,10(交換1次)

迴圈次數:6次 ;交換次數:3次

三、選擇排序

基本思想:從資料中選擇最小的同第乙個值交換,在從省下的部分中 選擇最小的與第二個交換,這樣往復下去。

void selectsort(int* pdata,intcount)

while(i<=j);//如果兩邊掃瞄的下標交錯,就停止(完成一次)//當左邊部分有值(left

if(left

run(pdata,left,j);//當右邊部分有值(right>i),遞迴右半邊

if(right>i)

run(pdata,i,right);

}void quicksort(int* pdata,intcount)

run(pdata,0,count-1);

五、希爾排序

也稱為縮小增量排序,基本思想:先將整個待排序記錄序列分割成為若干子串行分別進行直接插入排序,待整個序列中的記錄基本有序時,再對全體記錄進行一次直接插入排序。

六、比較

linux sort 指令 排序

ls l awk sort t k 2 n o st.txt 如果要從大到小排序 ls l awk sort t k 2 n r o st.txt總結下sort的用法 usage sort bccdfigmmnrsuz kpos1 pos2 pos1 pos2 s memsize t tmpdir ...

linux sort 多欄位排序

linux多數發行版自帶的sort程式,非常強大,在此只說多字段排序 sort 有個引數 k,可以指定字段,有比較複雜的語法,不在文字範圍內。一下為一段資料 從基因中得到,僅僅作為demo 檔名為 data chr13 3008566 3008677 chr9 3024384 3024515 chr...

linux sort 排序命令簡介

sort bcdfimmnr o 輸出檔案 t 分隔字元 起始字段 結束字段 help verison 檔案 引數說明 在使用sort命令以預設的式對檔案的行進行排序,使用的命令如下 sort testfilesort 命令將以預設的方式將文字檔案的第一列以ascii 碼的次序排列,並將結果輸出到標...