| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
cm54
10年前发布

快速排序C实现代码

    #include <stdio.h>                        /*输出*/        void show(int [],int);                        void quickSort(int array[],int left,int right)        {                   if(left>right)                          return;                         /*取最左边的值为pivot(基准)*/             int i=left,j=right,pivot=array[left];                              while(i<j)            {                 while( (i<j) && (pivot <= array[j]) )                    j--;                 if(i<j)                    array[i++]=array[j];                    while( (i<j) && (array[i] <= pivot) )                     i++;                 if(i<j)                     array[j--]=array[i];         }                     array[j]=pivot;/*也可以是 array[i]=piovt。因为此时i=j*/                    quickSort(array,left,i-1);            quickSort(array,i+1,right);        }                        void main()        {         /*测试数据*/         //int array[]={4,3,9,0,8,5,7,1,6,2};          int array[]={9,8,7,6,5,4,3,2,1,0,123,22,34,22,56,76,345,221};                 int LEN=sizeof(array)/sizeof(int);                 printf("原始数组:\n");         show(array,LEN);         printf("\n-----\n");                 quickSort(array,0,LEN-1);                 printf("\n排序结果:\n");         show(array,LEN);        }                /*打印*/        void show(int a[],int len)        {         int i;         for(i=0;i<len;i++)          printf("%d ",a[i]);        }