首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

排序算法-上(Java语言实现)

我只讲众多排序算法中的一小撮,也是经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。...第二,冒泡排序是稳定的排序算法吗? 在冒泡排序中,只有交换才可以改变两个元素的前后顺序。...第二,插入排序是稳定的排序算法吗? 在插入排序中,对于值相同的元素,我们可以选择将后面出现的元素,插入到前面出现元素的后面,这样就可以保持原有的前后顺序不变,所以插入排序是稳定的排序算法。...那选择排序是稳定的排序算法吗?这个问题我着重来说一下。答案是否定的,选择排序是一种不稳定的排序算法。...插入排序的算法思路也有很大的优化空间,我们只是讲了基础的一种。如果你对插入排序的优化感兴趣,可以自行学习一下希尔排序。

31820

我们真的搞懂这些排序算法了吗?(一)

例如上图,我们的数组中有两个相同的元素 4, 我们分别用不同的排序算法对其排序,算法一排序之后,两个相同元素的相对位置没有发生改变,我们则称之为稳定的排序算法,算法二排序之后相对位置发生改变,则为不稳定的排序算法...第二次排序中,我们使用稳定的排序算法,所以经过第二次排序之后,年终奖相同的职工,仍然保持着红豆的有序(相对位置不变),红豆仍是从小到大排序。我们使用稳定的排序算法,只需要两次排序即可。...上述情况如果我们利用不稳定的排序算法,实现这一效果是十分复杂的。 比较类和非比较类 我们根据元素是否依靠与其他元素的比较来决定元素间的相对次序。...主要是这个排序算法思路简单,也容易理解,(也可能是它的名字好听,哈哈),学过的老哥们也一起来复习一下吧,我们一起深挖一下冒泡排序。...但是我们交换后发现,两个相等元素 3 的相对位置发生了改变,所以简单选择排序是不稳定的排序算法。 ?

40410

详解选择排序算法

基本思想 选择排序的思想是: 给定一个数组arr,其长度为n; 第一次从 arr[0] 到 arr[n-1] 中选取一个值(按照需求,可以是最大值,可以是最小值,下同)与arr...[0]进行交换; 第二次从arr[1] 到 arr[n-1] 中选取一个值与arr[1]进行交换; 以此类推,直到arr[n-2]到arr[n-1]中选出值交换后即完成排序...稳定性 选择排序是不稳定的排序算法。 举个例子来说明: 序列 6 9 6 3 10 在第一趟排序时第一个6会和3交换位置,那么原序列中两个6的相对前后顺序就被破坏了。...所以选择排序是一个不稳定的排序算法。 欢迎关注 欢迎大家的关注 扫描下方的二维码或者微信搜一搜即可关注我的微信公众号:code随笔 微信公众号:code随笔

73010
领券