1.依次比较相邻的两个元素,使得前面的元素比后面元素小;
2.第一次循环开始比较第一个元素和第二个元素,如果顺序(前面小于后面)不对则交换;然后比较第二个元素和第三个元素;以此类推直到倒数第二个和最后一个比较完成;循环结束最后一个数就是数组中最大的数;
注:比较次数比元素个数少一次;比如三个元素只比较两次
3.第二次循环开始比较第一个元素和第二个元素,如果顺序(前面小与后面)不对则交换;以此类推直到倒数第三个和倒数第二个比较完成;循环结束倒数第二个数就是数组中第二大的数;
注:比较次数比元素个数少两次;
4.重复对越来越少的元素进行相同的比较排序;直到没有任何一对数字可以比较;完成排序;
代码参考;
int nums[]={9,4,7,3,6,8,1};
for(int i=0;i<nums.length-1;i++){ //排序次数
for(int j=0;j<nums.length-1-i;j++){ //比较次数
if(nums[j]>nums[j+1]){
int b=nums[j];
nums[j]=nums[j+1];
nums[j+1]=b;
}
}
System.out.println("第"+(i+1)+"次排序结果:");
for(int k=0;k<nums.length;k++){ //输出
System.out.print(nums[k]);
}
System.out.println("");
}
结果:
第1次排序结果:
4736819
第2次排序结果:
4367189
第3次排序结果:
3461789
第4次排序结果:
3416789
第5次排序结果:
3146789
第6次排序结果:
1346789
(〜㉨)〜