自己手写排序算法非常容易遗忘细节,每次都要花很多时间回忆,所以整理在这里。
1、直接插入排序
int a[10]={0,5,2,7,1,3}
for(i=2;i<=5;i++){
a[0]=a[i];//这里,有效数据从零开始(否则下面出现越界错误!),a[0]作为中间变量。
for(j=i-1;a[j]>a[0]&&j>0;j--)
a[j+1]=a[j];
a[j+1]=a[0];//一定要注意这里是a[j+1],否则会出错
}
2、冒泡排序
int a[10]={0,5,2,7,1,3};
int flag=1,i,j;
for(i=5;i>=1&&flag;i--){
flag=0;
for(j=1;j<i;j++)
if(a[j]>a[j+1]){
a[0]=a[j];
a[j]=a[j+1];
a[j+1]=a[0];
flag=1;
}
}
for(i=1;i<=5;i++)
cout<<a[i]<<" ";

5万+

被折叠的 条评论
为什么被折叠?



