首页 > 代码库 > 基本排序——冒泡

基本排序——冒泡

引用某人的话:算法是区别码农与软件工程师的依据,编程从来都是脑力工作,只是多数人把它干成了体力活。算法提供的是一种思路,一种思维方式,实现同样的功能,有人能用几行代码你却要用几十行代码,为什么别人的程序代码量少、运行效率高且bug少,你的代码杂乱无章、效率越来越差、bug不好找。

 

虽然复习了几次冒泡排序,但是过一段时间后又忘记了,还是因为没有真正理解到算法的思想,今天独立实现了冒泡排序,用自己的语言记录下来,加深自己的理解。

题目:有一个int类型的数组,需要你将数组从小到大进行排序

思考过程:

1、先写一个五个元素的数组,自己手动排序,分析一下思路;

(编程不是一行一行往下写的,先把思路理出来了,把大的框架(逻辑)写出来,然后填空,重要的不是用什么语言,只要能写出关键逻辑就是高手,这就是有开发经验与实习生的区别);

技术分享

 

2、开始编码

 

 1 public class OrderNum { 2     public static void main(String[] args) { 3         // TODO Auto-generated method stub 4         int[] data = http://www.mamicode.com/{3,2,8,0,4,5,1,9,6,7}; 5         for(int m=data.length-1 ;m>0 ;m--){ 6             for(int n=0;n<m;n++){ //这里n的边界用m做判断,因为没经过一轮外循环,最大的数已经确定下来,就不用再进行比较了;如果用n<data.length还会越界 7                 if(data[n]>data[n+1]){ 8                     int temp = data[n+1]; 9                     data[n+1] = data[n];10                     data[n] = temp;11                 }12             }13         }14         for(int i : data){15             System.out.print(i+"   ");16         }17         18     }19 }

 

输出:

技术分享

 

基本排序——冒泡