quicksort.c

来自「quicksort为一个利用quicksort找数值的方法」· C语言 代码 · 共 68 行

C
68
字号



             #include <stdio.h>
             #include <stdlib.h>
             #include <time.h>
             
             #define SWAP(x,y,t) (t=x,x=y,y=t)
             int partition(int [],int,int);
             void quicksort(int [],int,int);
             
             int main(void)
             {
             int i,a[30];
             srand(time(NULL));
             for(i=0;i<30;i++)
              a[i]=rand()%100;
             
             for(i=0;i<30;i++)
             printf("%d ",a[i]);
             quicksort(a,0,29);
             printf("\n");
             for(i=0;i<30;i++)
             printf("%d ",a[i]);
             printf("\n");
             system("pause");
             return 0;
            }
            
            int partition(int a[],int left,int right)
            {
             int i,j,base,tmp;
             base=a[right];
             j=left-1;
             for(i=left;i<right;i++)
             {
              if(a[i]<=base)
               {
                j++;
                SWAP(a[i],a[j],tmp);
               }
              }
            
             SWAP(a[j+1],a[right],tmp);
             return j+1;
             }
             void quicksort(int a[],int left,int right)
             {
               int p;
               if(left<right)
               {
               p=partition(a,left,right);
               quicksort(a,left,p-1);
               quicksort(a,p+1,right);
             } 
                                        
                                                    
                                    
                                    
                                    
             }
             
            
            
            
            
   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?