- 注册时间
- 2006-2-8
- 最后登录
- 1970-1-1
|
发表于 2007-1-20 16:45:10
|
显示全部楼层
刚刚随手写的,对A数组进行排序,自己根据你的需要改改吧
该算法复杂度是 O(n*log2n)应该可以满足你的需要了,比这快的没什么好算法了- long a[10];
- long r;
- void qsort(int x,int y)
- {
- long i,j,k,t;
- i=x;j=y;
- k=a[(x+y)/2];
- do
- {
- while (a[i]<k){i++;}
- while (a[j]>k){j--;}
- if (i<=j)
- {
- t=a[i];
- a[i]=a[j];
- a[j]=t;
- i++;j--;
- }
- }
- while (i<=j)
- if (j>x) qsort(x,j);
- if (y>i) qsort(i,y);
- }
- void main()
- {
- a[1]=1;
- a[2]=3;
- a[3]=5;
- a[4]=7;
- a[5]=9;
- a[6]=2;
- a[7]=4;
- a[8]=6;
- a[9]=8;
- a[10]=0;
- qsort(1,10);
- for (r=1;r<=10;r++)
- {
- printf("%d\n",a[r]);
- getchar();
- };
- }
复制代码 |
|