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; }