1、冒泡
#include<iostream>
using namespace std;int a[10000];
void maopao(int a[],int n)
{
for(int i=1;i<n;i++)//不断的拿第一个元素与之相邻的元素比较,前面的大,就交换值
for(int j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
maopao(a,n);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
2选择
#include<iostream>
using namespace std;int a[10000];
void paixu(int a[],int n)
{
for(int i=0;i<n-1;i++)//假设第i个元素为最小值,在之后的循环中若有比他小的,则交换值
{
int index=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[index])
index=j;
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
paixu(a,n);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
3、插入
#include<iostream>
using namespace std;int a[10000];
void insertpaixu(int a[],int n)
{
for(int i=1;i<n;i++)//从第二个元素开始,若比第一个元素小,就插在第一个元素前,把第一个元素的位置往后依次移动一个下标
{
for(int j=0;j<i;j++)
{
if(a[j]>a[i])
{
int temp=a[i];
for(int k=i;k>j;k--)
a[k]=a[k-1];
a[j]=temp;
break;
}
}
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
insertpaixu(a,n);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}