記錄一些排序演算法

2021-06-18 23:11:02 字數 1053 閱讀 1024

記錄一些排序演算法的c**

插入排序o(n^2)

void insertsort(int *a)

a[i+1]=key;

}}

歸併排序o(nlgn)

#define max 101

void merge(int *a,int p,int q,int r)

else

}if(i==(n1+1))

else if(j==(n2+1)) }

/* void merge(int *a,int p,int q,int r)

else

}} */

void mergesort(int *a,int p,int r)

void binaryinsertsort(int *a)

a[k]=key;

}}

堆排序o(nlgn)

#include//heapsort

//a[0]儲存a.length,在排序過程中儲存a.heap-size

void maxheapify(int *a,int i)

}void buildmaxheap(int *a)

void heapsort(int *a)

a[0]=length;

}

快速排序及其隨機化演算法  最壞情況o(n^2)平均情況o(nlgn)

#include#include#include//quicksort

int partition(int *a,int p,int r)

} t=a[i+1];

a[i+1]=a[r];

a[r]=t;

return i+1;

}int randomizedpartition(int *a,int p,int r)

void quicksort(int *a,int p,int r)

{ int q;

if(p

待續。。

演算法 一些線性排序演算法

一 計數排序 使用這個演算法有乙個前提,待排序的陣列a,其所有的元素分布在區間 0,k 該演算法的時間複雜度為o n k 當k o n 時,執行時間為o n 所以當k比較小的時候適合採用這個演算法 下面給出這個演算法實現的 include using namespace std void count...

C 一些排序演算法

氣泡排序 學語言要花大力氣學資料結構和演算法。using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m選擇排序...

一些常用演算法 排序

1.冒泡法 1 比較第乙個數和第二個數,若為逆序a 0 a 1 則交換,以此類推 直到第n 1個數和第n個數比較完為止 第一次氣泡排序,結果最大的數被安置在最後乙個元素位置上。2 對前n 1個數進行第二次氣泡排序,結果使次大的數被安置在n 1的位置上。3 重複上述過程,經過n 1次氣泡排序後,排序結...