首页 > 代码库 > Java重要排序
Java重要排序
排序需要栗子,举个栗子先
23 32-1 42 32-2 24 17 71 33
32-1 和 32-2代表两个相同的数字32,只不过位置不同,用来判断排序是否稳定
稳定的意思就是: 排在前面的数字排序之后依旧在前面
选择排序 -- 不稳定
1.每轮找到最小的下标 17-->6(下标) , 23 -->1(下标) 下标交换
2.不停循环知道全部数字有序
插入排序 -- 稳定
1.每轮从数组中抽取一个,也就是第一个
2.第一次循环,第一个数字放在第一个,以后的数字在新队列中查找到他合适的位置
冒泡排序 -- 稳定
每次循环最大wei‘zhi‘bu‘bian的数移动到最后
快速排序 -- 不稳定
1.第一个数23作为标杆
2.拿出最远的数和他比 比他大: 拿出的数字位置不变继续下一个循环
小:17 23 交换标杆一起移动
3.得出的一轮循环结果就是标杆在中间,前面的数比标杆小,后面的数比标杆大
堆排序 -- 不稳定
1.将数字插入,依照完全二叉树规定,
左子树小,右子树大,上比下大,根节点放最大的数
2.将二叉树按行放入数组(广度优先遍历)
3.每次循环将root提出,
并保证剩下的还是一个完全二叉树:满足每个父节点上都是较大的数。
删除root之后,找root的子节点,比较他们之间最大的数,变成root
不断寻找,替换,直到剩下的数字满足是一个完全二叉树。
桶排序 -- 是所有排序中最快的
我在这里具体讲了讲堆排序和桶排序:
http://blog.csdn.net/mon_key_dt/article/details/41652031
小白长见识,望大家多提意见。
Java重要排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。