冒泡排序(Bubble Sort)的基本思想是:通过对排序序列从前向后(从下标较小的元素开始)依次比较相邻元素的值,若发现逆序则交换,使得值比较大的元素逐渐从前向后移动,就像水底下的气泡一样逐渐向上冒。
// 实现冒泡排序
public class Bubble{
public static void main (String[]args){
int[] arr= {1234,23456,12,123,3456,1};//定义一个数组
int temp = 0;//定义一个比较时大小的第三者(过渡辅助变量)
//将多轮排序使用外层循环包括起来
for (int i=0;i<arr.length-1 ;i++ ) {
for (int j =0 ; j<arr.length- 1- i ; j++ ) {
//如果前面的数>后面的数,就交换
if (arr[j]>arr[j+1] ) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.println ("\n----运行第"+(i+1)+"次排序");
for (int j=0;j<arr.length ;j++ ) {
System.out.println(arr[j]+"\t");
}
}
}
}
总结
1、有N个元素就进行N-1轮排序,可看成N-1次外层循环
2、每一轮排序可确定一个数的位置,比如:第一轮排序确定最大数的位置,第二轮排序确定第二大数的位置...依次类推
3、每一轮外层循环过程中比较次数都在减少,如第一轮比较5次,第二轮则比较4次....
4、数组(array)概念
数组就是数据的集合,类似对象,只不过里面存储的是数据而不是变量名
1)长度:表示数组内有多少个数据,使用【变量名.length】可以查看数组长度
2)索引(下标):表示数据在数组内处于第几个位置
(所有语言中索引计数都是从0开始,即第一个索引为0,最后一个索引为 arr.length - 1
arr[0]:表示arr这个数组第一位的数据
arr[n]:表示arr这个数组第n位的数据
arr[arr.length - 1]表示arr这个数组最后一位数据