您的位置:首页 > 编程语言 > C语言/C++

c语言之排序

2016-01-06 19:44 351 查看
1.冒泡排序(一)

拿第I个数分别和后面的数比较,小的放在前面,第一次循环后,第一个数是最小的,第二次循环从第二个数开始比较,依次执行。

for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}


2.冒泡排序(二)
拿前一个数和后一个数进行比较,把大数放在后面,第一次循环结束后,最大的数在最后一位,下一次循环还是从第一个数开始比较,依次执行。

for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}


3.选择排序
定义一个标记,首先放在第一个数上,然后依次和后面的数进行比较,如果比后面的数小的话,就把标记移动到该位置上,一次循环结束后判断该标记和初始标记值是否相同,不同就将该位置的数值进行交换,下一次循环从第二个数开始,依次执行。

for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(a[j]<a[k]){
k=j;
}

}
if(i!=k){
temp=a[k];
a[k]=a[i];
a[i]=temp;

}
}


4.插入排序

for(i=2;i<n+1;i++){
r[0]=r[i];
j=i-1;
for(;r[j]>r[0];j--){
r[j+1]=r[j];
}
r[j+1]=r[0];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: