标签:
算法中需要掌握的简单的冒泡排序 话不多说 我们看如下:
/** * 把一个 混乱的数组 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; } } } }在不知道该干嘛的时候,做好眼前事。
标签:
原文地址:http://blog.csdn.net/shasiqq/article/details/44812795