选择排序的递归实现

来源:互联网 发布:淘宝刷单技巧 编辑:程序博客网 时间:2024/05/18 01:19

#include<iostream>
#include<ctime>
#include<vector>

using namespace std;

void print(vector<int> &A,int n)
{
 for(int i=0;i<n;i++)
  cout<<A[i]<<'/t';
 cout<<endl;
}

int min(vector<int>&A,int k,int n)// 找最小值
{
 if(k==n)
  return n;
 int m = (k+n)/2;
 int lm = min(A,k,m);
 int rm = min(A,m+1,n);
 return A[lm]<A[rm]?lm:rm;
}

void selectsort(vector<int>&A,int k ,int n)
{
 if(k==n)
  return ;
 swap(A[k],A[min(A,k,n)]);
 selectsort(A,k+1,n);
}

int main()
{
 int n = 10;
 srand(time(0));
 vector<int>A(n);
 for(int i=0;i<n;i++)
  A[i] = rand()%100;
 print(A,n);
 selectsort(A,0,n-1);
 print(A,n);
 return 0;
}

原创粉丝点击