核桃干货 | Java算法之冒泡排序(超详细)
核桃AI
共 4574字,需浏览 10分钟
·
2021-03-11 00:51
冒泡排序基本思想核心思想是从头开始让相邻的两个元素进行比较,符合条件就交换位置,这样就把最大值或者最小值放到数组的最后面了;接着再从头开始两两比较交换,直到把最大值或者最小值放到数组的倒数第二位。(即不需要与最后一位数进行对比).....以此类推,直到排序完成。
int[] array = {3,4,5,6,7};
代码
public class BubbleSort {
public static void main(String[] args) {
//定义数组
int[] array = {3,4,5,6,7};
//从索引为0开始依次向后两两比较,总共比较4次
for(int i = 0;i<4;i++) {
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第一趟排序后:"+Arrays.toString(array));
}
}
//从索引为0开始依次向后两两比较,总共比较3次
for(int i = 0;i<3;i++) {
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第二趟排序后:"+Arrays.toString(array));
//从索引为0开始依次向后两两比较,总共比较2次
for(int i = 0;i<2;i++) {
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第三趟排序后:"+Arrays.toString(array));
//从索引为0开始依次向后两两比较,总共比较1次
for(int i = 0;i<1;i++) {
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第四趟排序后:"+Arrays.toString(array));
public class BubbleSort {
public static void main(String[] args) {
//定义数组
int[] array = {3,4,5,6,7};
//从索引为0开始依次向后两两比较
for(int i = 0;i
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第一趟排序后:"+Arrays.toString(array));
//从索引为0开始依次向后两两比较,总共比较3次
for(int i = 0;i
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第二趟排序后:"+Arrays.toString(array));
//从索引为0开始依次向后两两比较,总共比较2次
for(int i = 0;i
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第三趟排序后:"+Arrays.toString(array));
//从索引为0开始依次向后两两比较,总共比较1次
for(int i = 0;i
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
System.out.println("第四趟排序后:"+Arrays.toString(array));
}
}
public class BubbleSort {
public static void main(String[] args) {
//定义数组
int[] array = {3,4,5,6,7};
System.out.println("排序前的内容:"+Arrays.toString(array));
for(int j = 0;j
//j:0,1,2,3
//i = 0:表示每次都从索引为0的开始,向后两两比较
for(int i = 0;i
//内层循环,每趟执行的次数,‐1为了防止索引越界,‐j为了提高效率
if(array[i]
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
System.out.println("排序后的内容:"+Arrays.toString(array));
}
}
评论