首页 > 代码库 > 数组排序
数组排序
冒泡排序
规则:
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较小时,选择排序较快
数组排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。