码迷,mamicode.com
首页 > 编程语言 > 详细

数组排序

时间:2017-05-09 11:14:17      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:表示法   java代码   alt   img   最小数   代码   数组   技术分享   nbsp   

冒泡排序

  规则:

  1、比较相邻的两个数

  2、如果左边的大,则交换位置

  3、向右移动一位,比较下一位

  当所有的数都进行一遍这个规则时,得到最大的数放在最右边。然后重新回到最左端,循环剩下的N-1个数,依次循环。

选择排序:

  规则:

  1、指定一个数作为比较标准,跟其他数进行比较,得到最小的数

  2、交换最小数和该标准数的位置

  3、从剩下的数中,再选取一个数作为标准,依次和其它数比较,得到下一个最小数

  4、交换该最小数和标准数的位置

  5、重复第3~4步

插入排序:

  图标实例:

  技术分享

 

java代码实现:

 

 

效率问题:

  eg:10个随机数,

  冒泡排序:

  需要进行9+8+7+6+5+4+3+2+1=45次比较过程。

        即. (N-1)+(N-2)+(N-3)+...+1 = N*(N-1)/2   当数据项很大时,比较次数近似为N^2/2,而交换次数为N^2/4(需不要需要交换是随机的,符合0-1分布),在大O表示法中,为O(N^2)。表示交换和比较的次数和数据项的平方成正比;数据项越大,比较耗时越大。

  选择排序:

  需要进行9+8+7+6+5+4+3+2+1=45次比较过程。但,只需要最多9次的交换。

  当数据项很大时,次数成效率的主要因素,因此选择排序也是O(N2)时间。在N较小时,选择排序较快

  

 

 

数组排序

标签:表示法   java代码   alt   img   最小数   代码   数组   技术分享   nbsp   

原文地址:http://www.cnblogs.com/x-jingxin/p/6826191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!