找回密碼
 註冊
搜索
熱搜: 活動 交友 discuz
查看: 1595|回覆: 0

[轉貼] 快速排序法

[複製鏈接]
發表於 2009-6-4 15:37:35 | 顯示全部樓層 |閲讀模式
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define MAX 10
  5. #define SWAP(x,y) {int tmp=x; x=y; y=tmp;}

  6. void Quicksort(int array[],int left,int right){
  7.     int i, j, key;
  8.     if(left<right){
  9.             key=array[left];
  10.             i=left;
  11.             j=right+1;
  12.             do{
  13.                     do{ i++; }while(array[i]<key);
  14.                     do{ j--; }while(array[j]>key);
  15.                     if(i < j)SWAP(array[i],array[j]);
  16.             }while(i<j);
  17.             array[left]=array[j];
  18.             array[j]=key;
  19.             Quicksort(array,left,j-1);
  20.             Quicksort(array,j+1,right);
  21.     }
  22. }

  23. int main(void){
  24.     int array[MAX];
  25.     int i;
  26.    
  27.     for(i=0;i<MAX;i++) array[i]=rand()%100 ;

  28.     printf("原數列:\n");
  29.     for(i=0;i<MAX;i++) printf("%d ",array[i]);
  30.     printf("\n\n");

  31.     Quicksort(array,0,MAX-1);
  32.        
  33.     printf("排序後:\n");
  34.     for(i=0;i<MAX;i++) printf("%d ",array[i]);
  35.     printf("\n\n");

  36.     system("pause");
  37.     return 0;
  38. }
複製代碼
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Checking the Pageranks

Archiver|手機版|小黑屋|WEO

GMT+8, 2026-7-29 11:55 PM , Processed in 0.025788 second(s), 17 queries .

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表