- 最多接受18个不为零的正整数进行排序,如果中间输入0则代表提前结束输入,0之前输入几个数就用几个数参与排序,0不参与排序。
- 数字选择排序方法,1-Bubble Sort,2-Insert Sort,3-Merge Sort(注意大小写要区分)。
- 使用所选排序方法的排序,结果输出所用方法以及结果,每个数之间用“,”隔开,中间不要有空格。
- 输入输出请严格按下面要求的格式实现,不能少任何一行文字。
#include <iostream>
#include <string.h>
#include <cmath>
#include <stdio.h>
#include <iomanip>
#include <cstdlib>
using namespace std;
int i=0;
void bubblesort(int a[]){
for(int j=0;j<i-1;j++){
for(int k=0;k<i-j-1;k++){
if(a[k]>a[k+1]){
int temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
}
void insertsort(int a[]){
for(int j=1;j<i;j++){
int temp=a[j];
int k=j-1;
for(;k>=0&&a[k]>temp;k--){
a[k+1]=a[k];
}
a[k+1]=temp;
}
}
void selectsort(int a[]){
for(int j=0;j<i-1;j++){
int minindex=j;
for(int k=j+1;k<i;k++){
if(a[k]<a[minindex]){
minindex=k;
}
}
int temp=a[j];
a[j]=a[minindex];
a[minindex]=temp;
}
}
int main(){
cout<<"Input"<<endl;
int a[50];
int getin;
while(i<18){
cin>>getin;
if(getin!=0){
a[i++]=getin;
}
else break;
}//get the data
cout<<"1-Bubble Sort,2-Insert Sort,3-Select Sort"<<endl;
cin>>getin;
cout<<"Output"<<endl;
switch(getin){
case 1:
bubblesort(a);
cout<<"Bubble Sort"<<endl;
break;
case 2:
insertsort(a);
cout<<"Insert Sort"<<endl;
break;
case 3:
selectsort(a);
cout<<"Select Sort"<<endl;
break;
}
for(int j=0;j<i;j++){
if(j!=i-1)
cout<<a[j]<<",";
else cout<<a[j]<<endl;
}
cout<<"End";
return 0;
}