mydjm

 

2012年3月22日

快速排序

摘要: 1 void qs(int s,int e) 2 { 3 int x=a[s],l=s,r=e;//以第一个数为参照做比较 4 if(l>=r)return; 5 while(l<r) 6 { 7 while(l<r&&a[r]>=x) 8 r--; //不小于分界值的留在右边,遇到小于的停止 9 a[l]=a[r]; 10 while(l<r&&a[l]<=x) 11 l++; //小于分界值的留在左边,遇到... 阅读全文

posted @ 2012-03-22 19:52 mydjm 阅读(132) 评论(0) 推荐(0) 编辑

冒泡排序

摘要: 1 #include<stdio.h> 2 3 void BubbleSort(int *a,int n) 4 { 5 int temp,i,j; 6 for(i=1;i<n-1;i++)//从1开始,每次j都从最后一个数开始往前比较,直到j遇到i。因为i前面的比较完成的了。 7 for(j=n-1;j>=i;j--) 8 { 9 if(a[j-1]>a[j])10 {11 temp = a[j];12 a[j] = a[j-1];... 阅读全文

posted @ 2012-03-22 15:57 mydjm 阅读(160) 评论(0) 推荐(0) 编辑

堆排序

摘要: 1 #include<stdio.h> 2 3 void MaxHeapify(int *a,int i,int len) 4 {//a为数组,i为需要保证最大堆性质的位置,len为数组中要排序的个数 5 int l=2*i;//i的左子女,数组是从1开始的 6 int r=2*i+1; 7 int largest,temp; 8 if((l<=len)&&(a[l]>a[i])) 9 largest = l;10 else largest = i;11 12 if((r<=len)&&(a[r]>a[largest]))13 阅读全文

posted @ 2012-03-22 08:44 mydjm 阅读(202) 评论(0) 推荐(0) 编辑

导航