用递归算法重新设计选择排序算法
不知道是不是这样写 囧?
-
#include<iostream>
-
using namespace std;
-
-
#define N 100
-
-
void sort(int A[], int n){
-
if(n==1)return;
-
for(int i=0; i<n-1; i++){
-
if(A[i]>A[n-1]){
-
int t = A[i];
-
A[i] = A[n-1];
-
A[n-1] = t;
-
}
-
}
-
sort(A,n-1);
-
}
-
-
void print(int A[], int n){
-
for(int i=0; i<n; i++){
-
cout<<A[i]<<" ";
-
}
-
cout<<endl;
-
}
-
-
int main(){
-
int A[N], n;
-
-
input:
-
cout<<"请输入数组的长度(<"<<N<<"):";
-
cin>>n;
-
-
if(n<=0){
-
cout<<"n必须大于0!"<<endl;
-
goto input;
-
}
-
if(n>=N){
-
cout<<"n必须小于"<<N<<"!"<<endl;
-
goto input;
-
}
-
-
cout<<"请输入数组的元素:";
-
for(int i=0; i<n; i++){
-
cin>>A[i];
-
}
-
-
cout<<"排序前的数组:";
-
print(A,n);
-
-
sort(A,n);
-
-
cout<<"排序后的数组:";
-
print(A,n);
-
-
return 0;
-
}
2010年12月01日 03:11
这应该是冒泡排序的递归算法吧?
2010年12月01日 17:05
这个是每次都跟最后一项比较呀