排序算法
文章平均质量分 80
七十一Li
这个作者很懒,什么都没留下…
展开
-
常见排序算法之基数排序详解
基数排序是一种非比较排序,它属于分配式排序(distribution sort)。基数排序是一种高效的排序算法,它可以突破比较类排序算法的极限(nlogn),其时间复杂度可以表示为O(Kn)。其中n就是待排序序列的元素个数,K是数字的位数。1. 算法思想算法思想是这样的,说白就是先排序个位,在排序十位…如图中数组,1.首先确定排序次数:最大值几位数就要排序几次,图中数组最大值为345需要排...原创 2020-03-17 17:51:28 · 920 阅读 · 0 评论 -
常见排序算法之归并排序详解JAVA实现
1.归并排序简介_ 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。_简而言之:== 1. 把数组拆分2. 然后把数组合...原创 2020-03-16 18:15:01 · 717 阅读 · 0 评论 -
常见排序算法之快速排序详解java实现
快速排序算法是分治法的一个典型实例,也是冒泡排序的改进,算法的思维逻辑也挺容易理解的。算法思路我个人把快速排序思路分成以下的三个部分:1. 基准数的选取,一般来说我们把数组(或者分区)的第一个数作为基准数2. 将比基准数大的都放置在它的右边,将比基准数小的都放置在它的左边,以基准数为分界线,原来的数组被分成了左右两个分区3.左右两个分区 分别重复步骤1,2,直到每个分区中只有一个数思路...原创 2020-03-12 20:07:32 · 459 阅读 · 0 评论 -
常见排序算法之堆排序
1.简介 堆排序是指利用堆这种数据结构所设计的一种排序算法。2.堆排序中大堆和小堆 大堆:根节点比子节点大 小堆:跟节点比子节点小3.核心思想 数组转完全二叉树,先把待排序的序列构成一个大顶堆, 将堆顶根节点和末尾节点互换 把剩下的n-1个元素重新构造成大顶堆, 再次交换堆顶根节点和末尾节点.... 重复操作直到最后只剩下一个数4.步骤 (1).首先构造大堆 (2)...原创 2020-03-07 11:48:17 · 140 阅读 · 0 评论 -
常见排序算法之二分插入排序算法
1.算法思路是在插入第i个元素时(i前面的元素必定是有序的),对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。2.特点分析二分法直接插入排序算法是插入排序的升级版本,但是时间复杂度和直接插入算法一样都是O(n²)...原创 2020-03-06 12:31:41 · 1546 阅读 · 0 评论 -
常见排序算法之希尔排序算法
1.希尔排序简介1.介绍: 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”, 是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法2.核心思想: 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多, 当增量减至1时,整个文件恰被分成一组,算法便终止 3.空间...原创 2020-03-03 22:23:15 · 206 阅读 · 1 评论