記錄一些排序演算法的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次氣泡排序後,排序結...