微信号:grzlwx

介绍:光荣之路官方资讯

必须知道的八大种排序算法【java实现】(一) 冒泡排序、快速排序

2015-08-29 10:46 光荣之路


冒泡排序

  冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

  冒泡排序的示例


冒泡排序的算法实现如下:【排序后,数组从小到大排列】

   /**
     * 冒泡排序
     * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。  
     * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。  
     * 针对所有的元素重复以上的步骤,除了最后一个。
     * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 
     * @param numbers 需要排序的整型数组     */
    public     static void bubbleSort(int[] numbers)
    {        int temp;  //记录临时中间值
        int size  = numbers.length; //数组大小
        for(int i = 0 ; i < size - 1 ; i++)
        {        for(int j = i + 1 ; j < size ; j ++)
        {            if(numbers[i] > numbers[j])  //交换两数位置            {
            temp = numbers[i];
            numbers[i] = numbers[j];
            numbers[j] = temp;
            }
        }
        }
    }

快速排序

快速排序的基本思想

通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。

快速排序的示例

(a)一趟排序的过程:


(b)排序的全过程


  把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复,一趟排序完成,左边就是比中轴小的,右边就是比中轴大的,然后再用分治法,分别对这两个独立的数组进行排序。(未完待续)

(作者:WhyWin 来源:http://www.cnblogs.com/0201zcr/p/4763806.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 SDCC 2015:CSDN年度压轴技术大会 云集百位顶尖技术专家 IT男都要哭了:总被误认为是修电脑的! 设计师最常忽略的UI页面状态:空白状态 军人退伍后做什么?什么技术适合退伍军人? 事前预防很重要,这次我们聊聊监控之异常检测