![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
a364745728
这个作者很懒,什么都没留下…
展开
-
快速排序
#include void swap(int *a, int *b); int partition(int A[], int p, int r); void quicksort(int A[], int p, int r); void print(int A[], int n); int main(int argc, char *argv[]) { int a[]={2,8,7,1,3,5,原创 2013-12-07 23:03:11 · 412 阅读 · 0 评论 -
逆序对
#include //直接枚举 int inverse_pair1(int *a, int n) { int count=0; int i,j; for(i=0;i<n;++i) for(j=i+1;j<n;++j) if(a[i]>a[j]) count++; return count; } //用归并排序的思想 int merge(int *a, int原创 2013-12-07 22:51:18 · 411 阅读 · 0 评论 -
堆排序
#include #include #define PARENT(i) ((i)/2) #define LEFT(i) (2*(i)) #define RIGHT(i) (2*(i)+1) typedef struct{ int a[1000]; int size; }Heap; Heap* initial_heap(int a[], int n); void print_heap(He原创 2013-12-07 22:57:53 · 401 阅读 · 0 评论 -
线性时间排序
#include //A为排序前的数组,n为A长度,B为排序后数组,k为【0,k】之间的数排序 void counting_sort(int A[], int n, int B[], int k); void print(int B[], int n); //基数排序d为位数 void radix_sort(int A[], int n, int d); //返回num中第n位的数(从右往左) i原创 2013-12-07 23:05:52 · 358 阅读 · 0 评论