码迷,mamicode.com
首页 >  
搜索关键字:比较排序    ( 240个结果
【数据结构】常见的7种比较排序算法2
●快速排序(QuickSort)1、算法描述:在平均状况下,排序n个数据要O(nlg(n))次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlg(n))算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来,且在..
分类:编程语言   时间:2016-05-22 18:34:12    阅读次数:232
常见排序算法(比较排序)及比较
#include<iostream> usingnamespacestd; #include<assert.h> //稳定性:指两个相同数排序后位置是否变化 //冒泡排序思想:相邻两数据比较交换,外层循环控制次数,内层比较 //voidBubbleSort(int*a,size_tlen) //{ // assert(a); // for(size_ti=0;i<len-1;++i..
分类:编程语言   时间:2016-05-16 00:32:41    阅读次数:256
常见的比较排序算法
比较排序是比较常见的排序算法,它分为以下几个类:交换排序:冒泡排序(BubbleSort)和快速排序(QuickSort)。插入排序:直接插入排序和希尔排序(ShellSort)。选择排序:选择排序(SelectSort)和堆排序(HeapSort)。(一)交换排序:voidBubbleSort(int*arry,intsize) { ..
分类:编程语言   时间:2016-05-15 12:41:27    阅读次数:243
计数排序
前几篇博客排序算法都是 用的比较排序,时间复杂度最低的是 O(nlgn),这也是比较排序最优的时间复杂度。 这次计数排序用的是线性时间复杂度的排序,也就是说不是通过比较来确定排序顺序的。 计数排序是 假设n个元素中的每一个都是在0到k区间内的一个整数,也就是整个数组里最大的数是 k,这是我们需要一个数组B[]来存放排序的输出,用C[]来提供临时存储的空间。其中,特别有意思的是,C[i],它保存...
分类:编程语言   时间:2016-05-13 00:45:53    阅读次数:145
Java中Comparable和Comparator的辨析
在对集合元素进行比较时一般使用TreeSet。对于简单的数据类型,TreeSet可以直接进行比较。但是对于复杂的数据类型,比如自己定义的数据类型或者类,就需要自己设置比较方法与比较规则了,这时就需要用到Comparable和Comparator了。1、Comparable和Comparator都是用来实现集合中的元素的比较、排序的。但也有所区别:(1)Comparable是在集合内部定义的方法实现排...
分类:编程语言   时间:2016-05-10 11:05:06    阅读次数:214
算法-桶排序(Bucket sort)
本文由@呆代待殆原创,转载请注明出处。 简介:这个排序算法不属于比较排序,在平均情况下他的时间代价是O(n),并且它假设它的输入数据均匀的分布在一个固定的区间里。 思路:桶排序假设他的输入均匀的分布在一个固定的区间,并且它将这个区间划分成均匀的子区间,每个子区间称为一个桶,然后将输入的数据分别放到对 ...
分类:编程语言   时间:2016-04-25 14:31:08    阅读次数:180
Java学习笔记--Comparable & Comparator
一、 Comparable<T>: Comparable是类内部的比较器,用于创建类的时候实现此接口,同时实现比较方法;对于不能修改源码的类则无法应用此方式进行比较排序等。 源码为: 1 public interface Comparable<T> { 2 public int compareTo( ...
分类:编程语言   时间:2016-04-25 11:46:12    阅读次数:239
比较排序算法时间复杂度下界为nlogn的证明
比较排序算法的时间复杂度是O(nlogn)的证明: 排序算法的比较是两两进行的,所以可以抽象成一棵二叉树,相互比较的数分别是左右叶子结点,,比较的结果存储在父节点中,依此类推。那么算法的时间复杂度就是取决于树的深度。如果要对n个数字进行比较排序,则需要进行n!次,即该二叉树有n!片叶子。 一棵深度为 ...
分类:编程语言   时间:2016-04-23 22:49:38    阅读次数:668
算法-计数排序及其变体
本文由@呆代待殆原创,转载请注明出处。 简介:用于整数排序,不同于比较排序,计数排序假设输入元素的大小在0到k之间,通过计算比 i 小的数的个数而确定 i 的位置。 思路:计算所排序的数组中,比元素 i 小的数的个数 n,如果n=5,那么 i 就应该排列在第6个位置上,通过计算每一个元素的 n 值, ...
分类:编程语言   时间:2016-04-21 01:28:20    阅读次数:306
依赖数组特性的几种非比较排序算法
前言: 前面所讲的排序算法基本都是需要进行两个数依次比较,这种两个数依次比较的算法不依赖于数组重元素的特性并且有下界Ω(nlogn)。换句话说就是使用比较排序算法最快的时间消耗没法小于这个界。那么是不是我们永远没法跨越这个梗呢?答案当然不是,当数组中的元素有一定的特点的时候,我们就可以利用这个特定, ...
分类:编程语言   时间:2016-04-16 15:19:35    阅读次数:262
240条   上一页 1 ... 13 14 15 16 17 ... 24 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!