用二重循环实现冒泡排序首先要想到以下几点:
数值如何存放
数组,数组长度为数值的个数
控制比较的轮数是多少
外层循环,循环变量i
控制每轮比较多少次
内层循环,循环变量j
交换数据怎么交换
想要记得牢,就要自己去发现规律
int[] a= {9,7,3,56,2,6,5}; //要进行冒泡排序,需要从前向后遍历 //便利的过程中要不断的比较相邻两个值 //不满足顺序的要交换位置 for(int i=0;i<a.length;i++) { boolean isSorted=true; for(int j=0;j<a.length-i-1;j++) {//减一目的:避免数组越界 if(a[j]>a[j+1]) { //交换 int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; isSorted=false; } } System.out.println("经过第"+(i+1)+"轮比较,数组:" +Arrays.toString(a)); if(isSorted) { break; } } System.out.println(Arrays.toString(a));
下面给大家说一下规律;
冒号排序速记口诀(升序)
N个数字来排队
两两相比小靠前
外层循环N-1
内层循环N-i-1
再给大家一个快速引用jdk冒号排序的方法(方法仅仅限于eclipse的调用)
int[] a= {24,23,3,543,435}; Arrays.sort(a); System.out.println(Arrays.toString(a));