首页 > 代码库 > 数组排序

数组排序

冒泡排序

  规则:

  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较小时,选择排序较快

  

 

 

数组排序