冰楓論壇

標題: [C++] 快速排序法 [打印本頁]

作者: whitefox    時間: 2023-5-31 23:43
標題: [C++] 快速排序法
練習排序法中的快速排序法
  1. #include <iostream>

  2. using namespace std;

  3. int a[101], n;

  4. void quicksort(int left, int right){
  5.         int i, j , t, temp, x;
  6.         if(left>right)
  7.                 return;
  8.        
  9.         temp=a[left];
  10.         i=left;
  11.         j=right;
  12.         while(i!=j){
  13.                 while (a[j]>=temp && i<j)
  14.                         j--;
  15.                 while (a[i]<=temp && i<j)
  16.                         i++;
  17.                
  18.                 if(i<j){
  19.                         t=a[i];
  20.                         a[i]=a[j];
  21.                         a[j]=t;
  22.                 }
  23.         }
  24.        
  25.         a[left]=a[i];
  26.         a[i]=temp;
  27.        
  28.         for (x=1;x<=n;x++)
  29.                 cout<<a[x]<<" ";
  30.        
  31.         cout<<"("<<temp<<")"<<endl;
  32.        
  33.         quicksort(left, i-1);
  34.         quicksort(i+1, right);
  35. }

  36. int main(){
  37.         int i, j, t;
  38.        
  39.         cin>>n;
  40.         for (i=1;i<=n;i++)
  41.                 cin>>a[i];
  42.        
  43.         quicksort(1, n);
  44.        
  45.         for (i=1;i<=n;i++)
  46.                 cout<<a[i]<<" ";
  47.        
  48.         cout<<endl;
  49.        
  50.         system("PAUSE");
  51.         return 0;
  52. }
複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓