中国小虫 发表于 2013-1-26 12:36:02

快速排序------排序

//下面的算法是快速排序的原形,霍尔排序#include<stdio.h>   intq(int *a, int n, int m)   {            int low = n, high = m;       int temp = a;       int i;         while (low < high)       {         while(low < high && a >= temp)   {--high;}      a = a;         while(low < high && a <= temp)   {++low;}      a = a;       }   a = temp;   return high;   }   void qsort(int *a, int n, int m)   {       int high;       if(n < m)       {high = q(a, n, m);}    if(n < high-1) {qsort(a, n, high-1);}    if(m > high+1)       {qsort(a, high+1, m);   }}       int main()   {       int *a;       int i, j, length;       int temp = 0;      printf("input :");       scanf("%d",&length);    a = (int*) malloc((length) * sizeof(int));      printf("input %d Numble :", length);       for(i = 0; i < length; i++)       {         scanf(" %d", &a);       }         qsort(a, 0, length-1);      for(i = 0; i < length; i++)   {      printf("%d ",a);}    printf("\n");   }// 改进后的快速排序int sort1(int *a, int n, int m){int i = n, j = n;int key = a, temp;if( n >= m){return 1;}while(j <= m){if( a <= key){temp = a;a = a;a = temp;i++;j++;}else{j++;}}i = i - 1;sort1(a, n, i-1);sort1(a, i+1, m);return 1;}   
页: [1]
查看完整版本: 快速排序------排序