
排序算法
HAHAHA9999?
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
冒泡排序算法C语言实现
冒泡排序原创 2017-03-03 17:23:10 · 8930 阅读 · 1 评论 -
对区间的模糊排序(原题算法导论第三版思考题7-6)
对区间的模糊排序问题分析以及代码实现原创 2017-08-15 16:58:22 · 1252 阅读 · 0 评论 -
针对相同元素值的快速排序
如果数组中的元素值都相同,随机化的快速排序的运行时间将为O(n2)O(n^2)。 因此,可以考虑对PARTITION过程进行优化。使新的PARTITION排列数组A[p..r]的元素,返回值是两个数组的下标q和t,其中p≤q≤t≤rp \le q \le t \le r,且有: 1. A[q..t]中所有的元素都相同 2. A[p..q-1]中的每个元素都小于A[q] 3. A[t+1..r原创 2017-08-14 17:05:07 · 5306 阅读 · 0 评论 -
去除尾递归的快速排序以及快速排序的栈深度
对于栈深度的定义: 编译器通常使用栈来存储递归执行过程中的相关信息,包括每次递归调用的参数等。最新调用的信息存在栈的顶部,而第一次调用的信息存在栈的底部。当一个过程被调用时,其相关信息被压如栈中,当它结束时,其信息被弹出。栈深度是在一次计算中会用到的栈空间的最大值。 对于快速排序,假设数组参数的传递是用指针来指示的,所以每次过程调用只需要O(1)的栈空间。 去除尾递归的快速排序伪代码如下:TA原创 2017-08-14 21:33:13 · 2839 阅读 · 1 评论 -
快速排序的复杂度分析以及使用插入排序优化的快速排序
快速排序复杂度的相关分析以及使用插入排序优化的快速排序原创 2017-08-11 23:13:21 · 1852 阅读 · 0 评论 -
快速排序的最早划分方法:Hoare划分
快速排序的划分过程最早由C.R.Hoare设计,伪代码如下:HOARE-PARTITION(A,p,r)x=A[p]i=p-1j=r+1while TRUE repeat j=j-1 until A[j]<=x repeat i=i+1 until A[i]>=x if i < j exchange A[转载 2017-08-12 16:00:25 · 2219 阅读 · 1 评论 -
快速排序的C语言实现
快速排序主要过程如下: 分解:数组A[p..r]被划分为两个(可能为空的)子数列A[p..q-1]和A[q+1..r],使得A[p..q-1]中元素都小于等于A[q],A[q+1..r]中元素都大于A[q]。 解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q+1..r]进行排序。 合并:因为子数组都是原址排序,所以不需要合并,数组A[p..r]已经有序。 非随机化版本的快速排序原创 2017-08-10 23:17:01 · 1474 阅读 · 0 评论 -
逆序对
逆序对数目统计方法,归并排序原创 2017-07-10 17:29:02 · 1295 阅读 · 0 评论 -
计数排序
计数排序假设n个输入元素中每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)k=O(n)时,排序的运行时间为Θ(n)\Theta(n)。 计数排序的基本思想是:对每一个输入元素x,确定小于x的元素的个数。利用这一信息直接将x放到它在输出数组中的位置上。 计数排序的伪代码如下: 假设输入是一个数组A[1..n],A.length = n,还需要两个数组,B[1..n]用来存放排原创 2017-08-15 23:04:42 · 673 阅读 · 0 评论 -
基数排序
基数排序的说明基数排序是一种用在卡片排序机上的算法。基数排序先按最低有效位进行稳定的排序,再利用排序子算法的稳定性,逐渐对高位进行稳定的排序,依次类推。基数排序必须保证子排序算法的稳定性,伪代码如下:RADIX-SORT(A, d) for i = 1 to d use a stable sort to sort array A on digit i原创 2017-08-16 15:16:34 · 877 阅读 · 0 评论 -
算法导论思考题6-3:Young氏矩阵
Young氏矩阵,每一行的数据从左到右递增序,从上到下递增序。原创 2017-07-31 23:47:28 · 345 阅读 · 0 评论 -
算法导论思考题6-2:d叉堆
d叉堆实现原创 2017-07-30 21:59:44 · 667 阅读 · 0 评论 -
基于数组的堆排序算法的C语言实现
基于数组的堆排序原创 2017-03-05 16:28:32 · 2001 阅读 · 2 评论 -
堆排序:插入方法建堆和普通方法建堆的比较
堆排序建堆方法的插入法和普通建堆方法比较原创 2017-07-29 22:20:35 · 2901 阅读 · 0 评论 -
归并排序的C语言实现
归并排序原创 2017-03-05 14:27:22 · 936 阅读 · 0 评论 -
插入排序算法C语言实现
实现如下:#include #include #define SIZE 20void insert_sort(int array[], const int size);void printArray(int array[], const int size);int main(int argc, char const *argv[]){ int array[SIZE原创 2017-03-03 17:17:24 · 3090 阅读 · 0 评论