算法中需要掌握的简单的冒泡排序 话不多说 我们看如下:
/**
* 把一个 混乱的数组 int arr[] = {2,2323,23,456,1,342};
* 按照有序排列 也就是我们常说的冒牌排序
* 还是按照我们以前所说的 当我们遇到问题时,我们把问题肢解。
* 1、首先我们想把一个混乱的数组排列成有序的,我们应该先找出最大的(或者最小的)
* 2、然后我们依次按照次方法进行循环 就可以排列出想要的顺序了,思路都有了,实现吧!
* @author Administrator
*
*/
public class BubbleSorted {
public static int arr[] = {2,2323,23,456,1,342};
public static void main(String[] args) {
test(arr);
}
public static void test(int arr[]){
//首先按照我们说的从arr[]中找到最大的 思路: 想想现在你有一杯水 一杯coffee 怎么把 两个杯子里的液体调换 ?
//对 再拿个杯子,你很聪明!那么来吧。 因为考虑到数组的长度可能会经常用到 我们把他提取成变量。
int len = arr.length;
//为了使这个排序方法 提高效率 我们可以做个判断 加入 再次循环的时候没有排位的变化 我们就停止循环
boolean boo = true;
for(int j =0;j<len-1;j++){
boo = true;//假定有序
System.out.println("第"+(j+1)+"趟");
for(int i =0;i<len-1-j;i++){
System.out.println("第"+(i+1)+"次");
if(arr[i]<arr[i+1]){
int temp = arr[i];//把水倒进 temp杯子中
arr[i] = arr[i+1];//把coffee倒进刚开始盛水的杯子中
arr[i+1] = temp;//最后把temp杯子中的水倒入刚开始盛coffe的杯子中
boo = false;//如果这里发生了变化 就把boo置为false
}
System.out.println(Arrays.toString(arr));
}
if(boo){
break;
}
}
}
}
在不知道该干嘛的时候,做好眼前事。