快速排序:

 
  
  1. #include <iostream> 
  2. using namespace std; 
  3.  
  4. int n[5] = {4,3,1,5,2}; 
  5. void quickSort(int s, int t); 
  6. int sort(int s, int t); 
  7.  
  8. int main() 
  9.     quickSort(0,4); 
  10.     for (int i=0;i<5;i++) cout<<n[i]; 
  11.     return 0; 
  12.  
  13. void quickSort(int s, int t) 
  14.     if(s>=t) return
  15.     int k = sort(s, t); 
  16.     quickSort(s,k-1); 
  17.     quickSort(k+1,t); 
  18.     return
  19.  
  20. int sort(int s, int t) 
  21.     int key = n[s]; 
  22.     while(s<t) 
  23.     { 
  24.         while(n[t]>=key&&t>s) t--; 
  25.         n[s] = n[t]; 
  26.         s++; 
  27.         while(n[s]<=key&&t>s) s++; 
  28.         n[t] = n[s]; 
  29.         t--; 
  30.     } 
  31.     n[s] = key; 
  32.     return s; 

 

堆排序 

 
  
  1. #include <iostream> 
  2. using namespace std; 
  3.  
  4.  
  5. int n[10] = {5,1,4,9,8,7,6,2,10,3}; 
  6. int l = 10; 
  7.  
  8. void creatHeap(); 
  9. void backHeap(int t); 
  10.  
  11.  
  12. int main() 
  13.     creatHeap(); 
  14.     int i; 
  15.     for (i=1;i<=l;i++) 
  16.     { 
  17.         cout<<n[0]; 
  18.         n[0] = n[l-i]; 
  19.         backHeap(l-i); 
  20.     } 
  21.     return 0; 
  22.  
  23. void creatHeap() 
  24.     int i; 
  25.     for (i=l/2;i>=1;i--) 
  26.     { 
  27.         if (2*i==l||n[2*i-1]>n[2*i]) 
  28.         { 
  29.             if (n[i-1]<n[2*i-1]) 
  30.             { 
  31.                 int temp = n[2*i-1]; 
  32.                 n[2*i-1] = n[i-1]; 
  33.                 n[i-1] = temp; 
  34.             } 
  35.         } 
  36.         else if (n[2*i-1]<=n[2*i]) 
  37.         { 
  38.             if (n[i-1]<n[2*i]) 
  39.             { 
  40.                 int temp = n[2*i]; 
  41.                 n[2*i] = n[i-1]; 
  42.                 n[i-1] = temp; 
  43.             } 
  44.         } 
  45.     } 
  46.  
  47. void backHeap(int t) 
  48.     int i; 
  49.     for (i=1;i<=t/2;i++) 
  50.     { 
  51.         if (2*i==t||n[2*i-1]>n[2*i]) 
  52.         { 
  53.             if (n[i-1]<n[2*i-1]) 
  54.             { 
  55.                 int temp = n[2*i-1]; 
  56.                 n[2*i-1] = n[i-1]; 
  57.                 n[i-1] = temp; 
  58.             } 
  59.         } 
  60.         else if (n[2*i-1]<=n[2*i]) 
  61.         { 
  62.             if (n[i-1]<n[2*i]) 
  63.             { 
  64.                 int temp = n[2*i]; 
  65.                 n[2*i] = n[i-1]; 
  66.                 n[i-1] = temp; 
  67.             } 
  68.         } 
  69.     }