栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

来来来,走过路过不要错过:排序算法汇总以及效果

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

来来来,走过路过不要错过:排序算法汇总以及效果

1. 排序算法汇总

2. 排序算法复杂度

3. 算法实现 3.1. 冒泡排序:BubbleSort 3.1.1 冒泡排序的原理:
  • 1.对于一个数组,冒泡排序算法会比较相邻的两项的大小,并进行换。
  • 2.对每一对相邻的元素做同样的调整,如:第一个和第二个,第二和第三个,第三个和第四个等等,以此类推。这样下来,最后的素会是最大的。
  • 3.重复以上步骤。如果有n个元素,则第一次循环进行n-1次,第二循环进行n-2次,…………,第n-j次循环过后,会按大小顺序排出j较大的数。
  • 4.持续以上的步骤,直到没有任何一堆数字需要比较。
3.1.2. 界面效果

3.2. 双向冒泡排序:DoubleBubbleSort 3.2.1. 双向冒泡排序的原理:
  1. 先对数组从左到右进行冒泡排序(升序),则最大的元素去到最右端
  2. 再对数组从右到左进行冒泡排序(降序),则最小的元素去到最左端
  3. 以此类推,依次改变冒泡的方向,并不断缩小未排序元素的范围,直到最后一个元素结束
3.2.2. 界面效果

3.3. 插入排序:InsertSort 3.3.1. 插入排序的原理:

插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌

3.3.2 界面效果

3.4. 选择排序:DoubleBubbleSort 3.4.1. 选择排序的原理:

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

3.4.2. 界面效果

3.5. 基数排序:RadixSort LSD 3.5.1 基数排序的原理:

属于“分配式排序”(distributionsort),基数排序法又称“桶子法”(bucketsort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法,同时基数排序分最高位优先"(MSD)法和最低位优先"(LSD)法。

3.5.2. 代码效果

3.6. 快速排序:QuickSort 3.6.1. 快速排序的原理:

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤。因此我的对快速排序作了进一步的说明:挖坑填数+分治法:

3.6.2. 界面效果

3.7.归并排序:MergeSort 3.7.1. 归并排序原理
  1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
  2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置
  3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
    重复步骤3直到某一指针超出序列尾
    将另一序列剩下的所有元素直接复制到合并序列尾
3.7.2. 效果

3.8. 希尔排序:ShellSort 3.8.1. 希尔排序的原理:

希尔排序是将待排序的数组元素 按下标的一定增量分组 ,分成多个子序列,然后对各个子序列进行直接插入排序算法排序;然后依次缩减增量再进行排序,直到增量为1时,进行最后一次直接插入排序,排序结束。

3.8.2. 界面效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号