冒泡排序实现
1.比较相邻的元素,如果第一个比第二个大 就交换他们两个
2.对没一个相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
效果图如下
代码附上。
//实现代码
//外层循环控制比较的次数
for (int i = 0; i < a.length - 1; i++) {
//内层循环控制到达位置
for (int j = 0; j < a.length - i - 1; j++) {
//前面的元素比后面大就交换
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
详解:
int [] arr={99,-55,66,77,0,3,2,4};
System.out.println("排序前"):
//遍历数组
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i]+(i==arr.length-1?"\t":","));
}
System.out.println();
//开始排序
//外层for循环控制轮数
for(int i = 0; i < arr.length-1; i++){
//内层for循环控制本轮比较的次数
for(int j = 0; j < arr.length-i-1){
//把arr[j]作为比较前面的元素的下标
if(arr[j]<arr[j+1]){
int k = arr[j];
arr[j] = arr[j+1];
arr[j+1] = k;
}
}
}
//排序结束遍历
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i]+(i==arr.length-1?"\t":","));
}
**可能不太齐全…有不齐全望大佬补充…