#include<iostream>
using namespace
std;
template<class
T>
int
Max(T
a[],
int
n){
int p=0;
for(int i=1;i<n;i++)
if(a[p]<a[i])
p=i;
return
p;
}
template<class
T>
void
SelectionSort(T
a[],int
n)
{
for(int
size=n;size>1;size--)
{
int
j=Max(a,size);
swap(a[j],a[size-1]);
for(int
k=0;k<n;k++)
{
cout<<a[k]<<"
";
}
cout<<endl;
}
}
void
swap(int
&a,int
&b)
{
int
t=a;
a=b;
b=t;
}
template<class
T>
void
Bubble(T
a[],int
n)
{
for
(int
i=0;i<n-1;i++)
{
if (a[i]>a[i+1])
swap(a[i],a[i+1]);
}
}
template<class
T>
void
BubbleSort(T
a[],int
n)
{
for(int
i=n;i>1;i--){
Bubble
(a,i);
for(int
k=0;k<n;k++)
{
cout<<a[k]<<"
";
}
cout<<endl;}
}
template<class T>
void Insert(int
a[],int
n,const
T&x,int
m){
int
i;
for(i=n-1;i>=0&&x<a[i];i--){
a[i+1]=a[i];
for(int
k=0;k<m;k++)
{
cout<<a[k]<<"
";
}
cout<<endl;
}
a[i+1]=x;
for(int
k=0;k<m;k++)
{
cout<<a[k]<<"
";
}
cout<<endl;
}
template<class T>
void InsertionSort(T
a[],int
n){
for(int i=1;i<n;i++){
T t=a[i];
Insert(a,i,t,n);
}
}
int main()
{
char
x;
char
m;
int
n;
while(true){
cout<<"请输入你想输入的整数个数(1~10):"<<endl;
cin>>n;
int *a=new
int[n];
for(int i=0;i<n;i++){
int
j;
cout<<"a["<<i<<"]=";
cin>>j;
a[i]=j;}
cout<<"若选择选择排序,则输入A"<<endl;
cout<<"若选择冒泡排序,则输入B"<<endl;
cout<<"若选择插入排序,则输入C"<<endl;
cout<<"请在此输入:";
cin>>x;
if(x=='A'){
SelectionSort(a,n);
cout<<"最后结果为:"<<endl;
for(int k=0;k<n;k++)
{
cout<<a[k];
}
cout<<endl;}
else if(x=='B'){
BubbleSort(a,n);
cout<<"最后结果为:"<<endl;
for(int k=0;k<n;k++)
{
cout<<a[k];
}
cout<<endl;}
else if(x=='C'){
InsertionSort(a,
n);
cout<<"最后结果为:"<<endl;
for(int k=0;k<n;k++)
{
cout<<a[k];
}
cout<<endl;}
else
cout<<"输入
错误,再见。"<<endl;
cout<<"是否继续?(Y/N)"<<endl;
cin>>m;
if(m=='Y')
continue;
else
break;
}
return 0;
}
using
int
for(int
}
{
}
}
{
}
if
{
(a,i);
}
}
template<class
void
}
}
}
}
template<class
void
for(int
T
Insert(a,i,t,n);
}
}
int
{
while(true){
cout<<"请输入你想输入的整数个数(1~10):"<<endl;
int
for(int
cout<<"请在此输入:";
cout<<"最后结果为:"<<endl;
for(int
cout<<endl;}
else
cout<<"最后结果为:"<<endl;
for(int
cout<<endl;}
else
n);
for(int
cout<<endl;}
}
![实验二代码全解 实验二代码全解](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)