码迷,mamicode.com
首页 >  
搜索关键字:sort 排序    ( 53475个结果
排序算法(四)——归并排序、基数排序
前面三篇文章分别介绍了插入排序、选择排序和,今天将最后两个排序讲完,分别是归并排序和基数排序。...
分类:其他好文   时间:2014-05-14 01:13:39    阅读次数:346
逆序对
设A[1…n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)【《算法导论》2-4】 现给出一个数列,求该数列中的逆序对(逆序对 ) 利用归并排序的方法我们给出如下算法:// // main.cpp // CpushTest // // Created by Ellen on 14-5-11. // Copyright (c...
分类:其他好文   时间:2014-05-13 22:53:12    阅读次数:340
排序算法 之 希尔排序
希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。 基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后...
分类:其他好文   时间:2014-05-13 22:11:01    阅读次数:272
ios 数组排序
前几天写了个音乐播放器,添加了歌词播放功能,起初一直在考虑是否要用c语言的排序方法。没想到 oc 强大到早已做好了方法。简单又高大上。 [arrayNamesortUsingSelector:@selector(compare:)]; arrayName 是可变数组,compare: 是...
分类:移动开发   时间:2014-05-13 22:00:41    阅读次数:422
排序算法 之 效率测试
前面我们写了常见的几种排序算法,并分析了各种算法的实现思想,及时间复杂度等情况,但由于只是分析,木有实际的数据做对比测试,所以对各个算法的效率也没有一个明确的概念,下面我们就通过具体的测试来看看同算法之间的效率差距。声明11个长度为100的元素取值范围为0到1000的序列int length = 1...
分类:其他好文   时间:2014-05-13 21:46:24    阅读次数:323
排序算法 之 桶排序
桶排序是一种效率很高的排序算法,它的时间复杂度为O(n),但桶排序有一定的限制,只有当待排序序列的元素为0到某一确定取值范围的整数时才适用,典型的例子比如成绩的排序等。 算法思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列,把待排序序...
分类:其他好文   时间:2014-05-13 21:23:40    阅读次数:351
poj 1091 跳骚
1 /** 2 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 3 即求 a1,a2,a3,。。。。an 的最大公约数为1 , a1,a2....an 可重复 4 原理 : 容斥原理 所有的 排序即 m^n ——不符合的情况 ,即为...
分类:其他好文   时间:2014-05-13 20:48:43    阅读次数:243
算法入门之快速排序
快速排序原理: 快速排序先把等待排序的集合打乱顺序,把第一个元素作为基准元素,为第二个元素和最后一个元素分配两个指针i和j,如果a[i]小于基准元素则i++,如果a[j]大于基准元素则j--,这样把大于基准元素的a[i]和小于基准元素的a[j]互换,以此类推,最终把基准元素与a[j]相交换,就得到一个a[j]左侧全部小于a[j],右侧全部大于a[j]的一个近似有序数组,然后按照如上步骤重新寻找每个被a[j]分开的数组中的分隔点,最终得到有序数组。 在通用排序中,一般都会选取快速排序来解决问题。...
分类:其他好文   时间:2014-05-13 07:40:24    阅读次数:290
从“假如有以下几种价格10,20,50,请你代码实现将他们排序输出”看着设计模式中的策略模式
今天重温了一下策略模式,将自己的一些感悟与大家分享。。。本人只是技术渣渣,所理解的东西的难免会有很大的局限性甚至是错误,还请各位带着批判的眼光去看待。。。。不喜请勿吐槽         定义:策略模式属于设计模式中的对象行为型模式,它将用到的算法单独抽象成一个单独的类。通常,我们在多个类完成同一件事情,仅仅完成的方式不同时,我们可以考虑使用这种设计模式。                  举例:相...
分类:其他好文   时间:2014-05-13 07:04:35    阅读次数:241
堆排序
堆排序分为两个阶段:1、将原始数组组装成一个堆;2、从堆顶逐个取出元素并得到排序结果。(如果是最大堆,则是重复删除最大元素,然后从后往前放入到数组。) 用sink()只需扫描数组中的一半元素。 堆排序可以不需要额外的空间,最优的利用空间和时间。可用于嵌入式系统。缺点:无法利用缓存,影响缓存命中。...
分类:其他好文   时间:2014-05-13 05:43:27    阅读次数:207
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!