码迷,mamicode.com
首页 >  
搜索关键字:八大排序    ( 222个结果
20191209-八大排序之归并排序
1. 归并排序 算法核心思想 归并排序使用了二分法,归根到底的思想还是分而治之。拿到一个长数组,将其不停的分为左边和右边两份,然后以此递归分下去。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序 ...
分类:编程语言   时间:2019-12-09 21:53:41    阅读次数:117
20191209-八大排序之希尔排序
1. 希尔排序 算法核心思想 希尔排序本质也是一种插入排序,但是是根据简单插入排序进行优化后的一种更加高效的版本,别称缩小增量排序。希尔排序的核心思想是将排序数组按照步长进行分组,然后对分组的元素进行直接插入排序,循环缩小分组步长,最后当步长长度为1的时候排序结束。希尔排序在数组中采用的是跳跃式分组 ...
分类:编程语言   时间:2019-12-09 21:44:10    阅读次数:97
20191209-八大排序之快速排序
1. 快速排序 算法核心思想 取待排序数组第一个数作为参照数,建立left和right数组left存储小于参照数的数组集合,right存储大于参照数的数组集合,然后分别对left和right进行递归调用排序。具体算法逻辑如下: 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右 ...
分类:编程语言   时间:2019-12-09 21:41:59    阅读次数:92
20191209-八大排序之冒泡排序
1. 冒泡排序 算法核心思想 在数组arr[n]中,从第一个数开始,拿arr[i]和后面的数arr[i+1]进行比较,如果arr[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好 ...
分类:编程语言   时间:2019-12-09 21:37:05    阅读次数:83
20191209-八大排序之基数排序
1. 基数排序 算法核心思想 基数排序(radix sort)是一种只适用于数字或字母类型的排序方法,它检查数字或字母的每一位,将之分类,按照位数的特定顺序,来将元素排列。以数字为例,将所有元素按照个位数字分类,分类好后,将个位数字大小排列组合起来,再按照十位数字分类,再按照数字大小排列组合起来,一 ...
分类:编程语言   时间:2019-12-09 21:32:36    阅读次数:116
20191209-八大排序之堆排序
1. 堆排序 算法核心思想 堆排序利用堆的特点, 最大堆要求节点的元素都要不小于其孩子,最小堆要求节点元素都不大于其左右孩子,那么处于最大堆的根节点的元素一定是这个堆中的最大值,每次把堆顶元素放置在二叉树的尾部,然后重新建堆这样循环处理,最终就能完成排序。 核心算法逻辑如下: 建堆 把堆顶的元素和最 ...
分类:编程语言   时间:2019-12-09 21:22:00    阅读次数:86
20191209-八大排序之选择排序
1. 选择排序 算法核心思想 选择排序的算法核心思想是从数组中选择最小的元素,放到第一个位置,再从数组中选择第二小的元素放到第二个位置,一直到数组的最后一个元素为止。具体逻辑如下: 选择数组的第一小的元素,将其放在第一个位置 选择数组的第二小的元素,将其放在第二个位置 。。。 选择数组的第三小的元素 ...
分类:编程语言   时间:2019-12-09 21:20:31    阅读次数:102
20191209-八大排序之插入排序
1. 插入排序 算法核心思想 插入排序的核心思想是将数组中所有的元素分别和前面已经排序好的元素相比较,如果后面选择的元素比已排序的元素小,则交换位置,直至比较完成。具体逻辑如下: 取数组的第一个元素为已经排序好的元素,将第一个元素看作有序序列 取数组的第二个元素和已经排序号的元素进行比较,如果第二个 ...
分类:编程语言   时间:2019-12-09 21:16:27    阅读次数:64
C++排序算法比较
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较... ...
分类:编程语言   时间:2019-12-03 14:09:29    阅读次数:113
八大排序之冒泡排序;
/*八种排序之冒泡排序*///冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,//就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。/* 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在 ...
分类:编程语言   时间:2019-11-02 21:51:26    阅读次数:77
222条   上一页 1 2 3 4 ... 23 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!