原理:整个过程就像气泡一样往上升,单向冒泡排序的基本思想是:对于给定的n个数据,从第一个记录开始依次对相邻的俩个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录的最大值将位于第n位,然后对前(n-1)个记录进行第二轮比较,重复该过程,直到记录只剩下一个为止。ps:这是我记住的第一个排序算法。
俩种方法:
package 冒泡排序;
public class BubbleSort {
public void bubble1(int array[]) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = 0;
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
public void bubble2(int array[]) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = array.length - 1; j > i; j--) {
if(array[j]<array[j-1]){
int temp = 0;
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
}
package 冒泡排序;
public class Test03 {
public static void main(String[] args) {
// int a[] = {5,4,9,8,7,6,0,1,3,2};
// BubbleSort bubbleSort = new BubbleSort();
// bubbleSort.bubble1(a);
// for(int n:a){
// System.out.println(n);
// }
int a[] = {5,4,9,8,7,6,0,1,3,2};
BubbleSort bubbleSort = new BubbleSort();
bubbleSort.bubble2(a);
for(int n:a){
System.out.println(n);
}
}
}
0
1
2
3
4
5
6
7
8
9