回顧一下經典的幾種排序問題

2021-09-26 16:40:40 字數 861 閱讀 6531

直接放**好了,**還是要多動手試一下才印象深一點

#include//氣泡排序

void bubblesort (int a, int len)//時間複雜度o(n²)

}}//插入排序

void insertsort(int a,int len)//插入排序--找到前面比自己大的數,進行位置交換--時間複雜度θ(n²)

a[j] = temp;

}}//希爾排序

void shellsort(int a,int len)//插入排序的變式,分組進行插入排序

else

break;

}a[j] = temp;}}

}//堆排序,對於堆這方面有點欠佳,貼鏈結算了[覺得這個寫得挺好的](

void swap(int *a, int *b)

void adjustheap(int *arr, int i, int len)

swap(&arr[i], &arr[j]);

//交換之後還要考慮該目前j結點與自己的孩子結點的數值比較,還要進行調整,將i當前結點換成j結點所在位置

i = j;

j = 2*i+1;

}}void makeheap(int *arr, int n)

}void heapsort(int *arr, int len)

}//快速排序

//歸併排序

int main()

; //結束符號需要佔一位

insertsort(a,6);

for(int i=0; i<6; i++)

}

總是會忘記就很煩,集合一下加強印象

總結一下常見的幾種排序

1 插入排序 public void insertsort int a 時間複雜度o n 2 沒有多餘的空間開銷,雖然複雜度為平方級別,但在陣列為近似有序的情況下效率非常高,有時在歸併和快排的的子串行中可以使用插入排序,一般能提公升20 30 的效率。2 希爾排序 希爾排序可以理解為插入排序的改進,...

回顧一下這段時間

自從小兒子出生以來,每天睡眠不好,加上年底雜事比較多,好久沒有看專業書籍,也沒有寫部落格了。這是病,得改,任何事情都貴在堅持。最近對專案管理和質量管理進行了一些實操性質的研究,實際就是考慮怎麼把規範 標準 體系的要求落實到具體的日常工作中去。下面是一些老生常談 1 流程要梳理清晰。各項工作用的表單,...

getopt 簡單回顧一下

getopt 解析命令的可選項 說明 getopt只是乙個簡單的解析命令可選項的函式,只能進行簡單的格式命令解析,格式如下 1 形如 cmd a b 對短選項的解析 2 形如 cmd a a argument b b argument 對短選項及短選項的引數解析 3 形如 cmd a a argum...