1 概述
本文博主分别使用冒泡法和选择法对10个整数排序!
2 解法
2.1 冒泡法
冒泡法就是循环的每一次前一个和后一个相比较,大的就往后移,循环外层结束即可。
// 冒泡法排序
#include <stdio.h>
int main(){
int x[10],i,j,temp;
for(i=0;i<10;i++){
scanf("%d", &x[i]); // 输入10个整数,赋值到数组中
}
for(i=0;i<10;i++){ // 总共要循环10次
for(j=0;j<10-i-1;j++){ // 前一个和后一个相比较,大的话就往后移 ,不过循环的次数随着外循环增加而减少
if(x[j]>x[j+1]){
temp = x[j+1];
x[j+1] = x[j];
x[j] = temp;
}
}
}
for(i=0;i<10;i++){
printf("%d\t", x[i]);
}
return 0;
}
2.2 选择法
选择法排序,选择法即是每一次都选择最小的一个放在最前面,依次下去 。
// 选择法排序
// 选择法即是每一次都选择最小的一个放在最前面,依次下去
#include <stdio.h>
int main(){
int x[10],i,j,temp,min;
for(i=0;i<10;i++){
scanf("%d", &x[i]); // 输入10个整数,赋值到数组中
}
for(i=0;i<10;i++){ // 总共要循环10次
min = i; // 每一次都选择最小的一个放在最前面
for(j=i+1;j<10;j++){ // 从i+1开始找
if(x[j]<x[min]){ // 如果后面的数更小,那么现在的最小的下标为j
min = j;
}
}
temp = x[i]; // 交换
x[i] = x[min];
x[min] = temp;
}
for(i=0;i<10;i++){
printf("%d\t", x[i]);
}
return 0;
}