Liny_@NotePad

沉迷ACG中

用递归算法重新设计选择排序算法

不知道是不是这样写 囧?

  1. #include<iostream>
  2. using namespace std;
  3.  
  4. #define N 100
  5.  
  6. void sort(int A[], int n){
  7.         if(n==1)return;
  8.         for(int i=0; i<n-1; i++){
  9.                 if(A[i]>A[n-1]){
  10.                         int t = A[i];
  11.                         A[i] = A[n-1];
  12.                         A[n-1] = t;
  13.                 }
  14.         }
  15.         sort(A,n-1);
  16. }
  17.  
  18. void print(int A[], int n){
  19.         for(int i=0; i<n; i++){
  20.                 cout<<A[i]<<" ";
  21.         }
  22.         cout<<endl;
  23. }
  24.  
  25. int main(){
  26.         int A[N], n;
  27.  
  28. input:
  29.         cout<<"请输入数组的长度(<"<<N<<"):";
  30.         cin>>n;
  31.  
  32.         if(n<=0){
  33.                 cout<<"n必须大于0!"<<endl;
  34.                 goto input;
  35.         }
  36.         if(n>=N){
  37.                 cout<<"n必须小于"<<N<<"!"<<endl;
  38.                 goto input;
  39.         }
  40.  
  41.         cout<<"请输入数组的元素:";
  42.         for(int i=0; i<n; i++){
  43.                 cin>>A[i];
  44.         }
  45.  
  46.         cout<<"排序前的数组:";
  47.         print(A,n);
  48.  
  49.         sort(A,n);
  50.  
  51.         cout<<"排序后的数组:";
  52.         print(A,n);
  53.  
  54.         return 0;
  55. }