Alex_McAvoy的博客

I'm not there,I'm not die.

排序:
默认
按更新时间
按访问量
RSS订阅

理论基础 —— 排序

【概述】 1.通常所说的排序算法指的是内部排序算法,即:数据记录在内存中进行排序。 2.排序算法大体可分为两种: 1)非线性时间比较类排序:交换类排序、插入类排序、选择类排序、归并排序,时间复杂度O(nlogn) ~ O(n^2)。 2)线性时间非比较类排序:计数排序、基数排序和桶排序...

2019-06-02 20:12:24

阅读数 91

评论数 0

理论基础 —— 排序 —— 逆序对问题

【概述】 设A为一个有n个数字的有序集,其中所有数字各不相同。如果存在整数i、j,使得1<=i<j<=n且A[i]>A[j],则{A[i],A[j]}这个有序对称为A的一个逆序对。 例如:集合{3,1,4,5,2}的逆序对有{3,1}、{...

2018-04-20 13:17:26

阅读数 195

评论数 0

理论基础 —— 排序 —— 归并排序

【概述】 归并排序是一种稳定的排序方法,其是分治策略的一个非常典型的应用。 其基本思想是:将 n 个待排序的记录看成是 n 个长度为 1 的有序序列,然后两两进行归并,第一轮得到 [n/2] 个长度为 2 的有序序列,第二轮得到 [n/4] 个长度为 4 的有序序列,以此类推,直到得到一个长度...

2018-04-17 22:44:38

阅读数 161

评论数 0

理论基础 —— 排序 —— 基数排序

【概述】 基数排序是一种稳定的排序方法,属于非比较类排序,其基本思想是:将待排序序列分到有限数量的桶中,每个桶再个别排序。 简单来说,就是将数据分组,放在一个个桶中,然后对每组每个桶再进行排序。 【过程】 例如:要对大小为 [1..1000] 范围内的 n 个整数 A[1..n] 排序 ...

2018-04-17 22:09:01

阅读数 190

评论数 0

理论基础 —— 排序 —— 计数排序

【概述】 计数排序是一种稳定的排序,属于非比较类排序,其基本思想是:对于给定的输入序列中的每一个元素 x,确定该序列中值小于 x 的元素的个数,一旦有了这个信息,就可以将 x 直接存放到最终的输出序列的正确位置上。 例如,如果输入序列中只有 17 个元素的值小于 x 的值,则 x 可以直接存放...

2018-04-17 15:18:46

阅读数 73

评论数 0

理论基础 —— 排序 —— 桶排序

【概述】 桶排序是一种稳定的排序方法,其是非比较类排序中最简单的一种。 其基本思想是:假设待排序记录的值都在 0~m-1 之间,设置 m个桶,将值为 i 的记录分配到第 i 个桶中,然后再将各个桶中的距离依次收集起来。 【时空复杂度分析】 最好的情况下,每个桶只有一个数据,那么最好时间...

2018-04-17 15:04:43

阅读数 107

评论数 0

理论基础 —— 排序 —— 堆排序

【概述】 堆排序是一种不稳定的排序方法,其利用了堆的性质来进行排序,是选择排序的一种。 其基本思想是:将待排序的记录构成一个堆,然后不断将堆顶元素移走,并将剩余的记录调整成堆,直到堆空。 关于堆:点击这里 【实现过程】 堆排序的实现步骤为: 根据已有序列创建一个堆 heap[0..n-...

2018-03-18 14:53:01

阅读数 135

评论数 0

理论基础 —— 排序 —— 希尔排序

【概述】 希尔排序是一种不稳定的排序方法,其是对直接插入排序的改进。 直接排序再基本本身基本有序时,只需要少量的插入操作,即可完成整个记录的排序工作,所谓基本有序,就是小的关键字基本在前,大的关键字基本在后,但基本有序的条件十分苛刻,难以达到。 为了达到基本有序,采用跳跃分割策略,即将相距某...

2018-03-18 10:13:54

阅读数 125

评论数 0

理论基础 —— 排序 —— 直接插入排序

【概述】 直接插入排序是一种稳定的排序方法,其是插入排序中最简单的排序方法,类似于玩扑克时整理手牌的过程。 其基本思想是:依次将待排序序列中的每一记录插入到一个已排好序的序列中,直到全部记录都排好序。 其实现依靠双重循环完成,外层循环执行 n-1 次,内层循环执行次数取决于第 i 个记录前有...

2018-03-18 09:43:31

阅读数 199

评论数 0

理论基础 —— 排序 —— 快速排序

【概述】 快速排序是一种不稳定的排序方法,其同样属于交换排序,是对冒泡排序的一种改进:在冒泡排序中,记录的比较与移动是在相邻位置进行的,记录每次交换只能后移一个位置,因而总的比较次数与移动次数较多;而在快速排序中,记录的比较与移动是从两端向中间进行的,关键码较大的记录一次就能从前面移动到后面,关...

2018-03-12 21:38:43

阅读数 342

评论数 0

理论基础 —— 排序 —— 鸡尾酒排序

【概述】 鸡尾酒排序也称定向冒泡排序,是一种稳定的排序方法,其是原始冒泡排序的改进,也是交换排序的一种。 定向冒泡排序与冒泡排序的不同在于其从低到高比较,然后再从高到低比较,如此循环往复,直到序列有序,而冒泡排序仅是从低到高的去比较序列中的每个元素。 其实现借助两个指针来完成,一个作为头指针...

2018-02-14 22:17:42

阅读数 419

评论数 0

理论基础 —— 排序 —— 直接选择排序

【概述】 直接选择排序又称简单选择排序,是一种不稳定的排序方法,其是选择排序中最简单一种,其基本思想是:第 i 趟排序再待排序序列 a[i]~a[n] 中选取关键码最小的记录,并和第 i 个记录交换作为有序序列的第 i 个记录。 其实现利用双重循环,外层 i 控制当前序列最小值存放的数组元素位...

2018-02-08 01:59:13

阅读数 20973

评论数 9

理论基础 —— 排序 —— 原始冒泡排序

【概述】 冒泡排序是一种稳定的排序方法,也是交换排序中最简单的排序方法,其基本思想是:两两比较相邻记录的关键码,若反序则交换,直到没有反序为止。 冒泡排序的实现依靠,双重循环,外层 i 控制进行多少轮,内层循环 j 控制每轮比较的次数,对于 n 个元素,共进行 n-1 趟交换,每趟比较 n-i...

2018-02-07 00:04:02

阅读数 262

评论数 0

提示
确定要删除当前文章?
取消 删除