冒泡排序法是一种简单的排序算法,它重复地走访过要排序的数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数组的工作是重复地进行直到没有再需要交换,也就是说该数组已经排序完成。
一、冒泡排序的原理:
1、排序时,先通过元素进行比较找出最大数,如果是升序就放在最后,降序就放在首位。
2、多少个数进行排序,外层for循环就循环多少次。
3、内层for循环表示比较的次数。例如:有6个数排序:2,5,6,7,8,4。
(1)找出6个数中最大的数,我们就需要比较5次 //6-1
(2)找出6个数中第二打的数,我们就需要比较4次。//6-2
......直到最后我们找到最小的数,这时比较的次数就是排序数的个数-找第几大的数。
二、冒泡排序的语法
升序:
int[] a={9,8,7,5,4,6,2,3,1};
for (int i = 1; i < a.length; i++) { //外层for循环,表示循环9次
for (int j = 1; j <=a.length-i; j++) { //内层for循环,表示找第几个数所需要比较的次数,如找第一个数需要比较5次,找第二个数需要4次......
if(a[j-1]>a[j]){ //两个元素进行判断,实现两个数调换位置。
int tmp=a[j-1]; //定义tmp用于临时存放两元素中最大的那个。
a[j-1]=a[j]; //a数组中前面的数赋值小的那个。
a[j]=tmp; //a数组中后面的数赋值tmp的值,实现升序排列。
}
}
}
降序:
int[] b={9,8,7,5,4,6,2,3,1};
for (int i = 1; i < a.length; i++) {
for (int j = 1; j < a.length-i; j++) {
if(b[j-1]<b[j]){ //判断两个元素的值大小,实现两个元素的值互换。
int tmp=b[j-1]; //定义一个tmp变量存放较小的值
b[j-1]=b[j]; //把较大的值赋给前面的元素
b[j]=tmp; //把tmp中的值赋给后面的元素,实现降序排列。
}
}
}