Java实现冒泡排序
1.冒泡排序
冒泡排序就是将相邻的不相等的数进行交换。可以按照自己想要的顺序进行交换,如大到小或者是小到大。
冒泡的由来:因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
冒泡的每一轮就是要找到当前轮最大值或是最小值,如下:
public static void main(String[] args) {
int[] num = {10,7,5,3,2};//要排序的数组
int i = 1;//i可以为0,但是数组的第一个数字没必要要和自己比较,所以令i=1
for (int j = 0; j < num.length-i; j++) {//要注意是否会超出数组长度,后面还有num[j+1]
//比大小进行交换
if (num[j] > num[j + 1]) {
int temp = num[j + 1];
num[j + 1] = num[j];
num[j] = temp;
}
}
//输出结果
System.out.print("第一轮排序后的顺序:");
for (int k = 0; k < num.length; k++) {
System.out.print(num[k] + " ");
}
}
丛结果可以知道,第一轮中找到了数组中的最大值,那么第二轮找到第二小的值,第三轮找到第三小的值…
按照这样的规律,可以给这个循环的外层在来个循环不就把数组的数组的里数全部排序了。如下:
public static void main(String[] args) {
int[] num = {10,7,5,3,2};//要排序的数组
for (int i = 1; i < num.length; i++) {//i可以为0,但是数组的第一个数字没必要要和自己比较,所以令i=1
for (int j = 0; j < num.length-i; j++) {//要注意是否会超出数组长度,后面还有num[j+1]
//比大小进行交换
if (num[j] > num[j + 1]) {
int temp = num[j + 1];
num[j + 1] = num[j];
num[j] = temp;
}
}
}
//输出结果
System.out.print("排序后的顺序:");
for (int k = 0; k < num.length; k++) {
System.out.print(num[k] + " ");
}
}