码迷,mamicode.com
首页 >  
搜索关键字:排序算法    ( 6430个结果
排序算法——直接插入排序
直接插入排序是一种实现较为简单的排序算法。基本的思想是,从数组的第二个元素起,每次选取一个元素,与前面已经排序数组的元素比较,找到该元素的合适位置。不多说,直接上代码。#include #include #include using namespace std;const int arrSize =...
分类:其他好文   时间:2014-05-12 20:59:47    阅读次数:295
排序算法——归并排序
归并排序是分治法的典型举例。分治法的思想是,将原有问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。分治模式在每层递归时都有三个步骤:分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。解决这些子问题,递归地求解各子问题。然而,若子...
分类:其他好文   时间:2014-05-12 19:56:28    阅读次数:265
排序函数sort用法简介
排序算法有很多,冒泡排序,选择排序,堆排序,快速排序,归并排序,基数排序……其中平均复杂度O(nlogn)的排序算法或者在某方面有特殊优势的算法在ACM中才有实际使用价值,所以上述提到的前2种大家以后就不要用了。其他排序算法大家会慢慢接触,本文主要介绍使用最多的排序函数 sort。大家可能会遇到qs...
分类:其他好文   时间:2014-05-12 09:24:26    阅读次数:323
排序算法 之 归并排序
归并排序也是基于分治思想的一种排序算法,是通过对两个或两个以上的有序序列合并来实现的,对两个序列合并的叫两路归并,对两个以上序列合并的叫多路归并。归并排序的时间复杂度也为O(N*logN)。下面来看一下两路归并的实现:基本思想:归并排序时先找出序列的中间元素把序列分解为两个子序列,对子序列重复这个过...
分类:其他好文   时间:2014-05-12 05:47:59    阅读次数:298
排序算法《3》插入排序
算法实现: 使用...
分类:其他好文   时间:2014-05-11 21:39:35    阅读次数:201
C语言快速排序算法代码分析
首先,你要对快速排序的思想有一定的了解,先看快速排序的代码。...
分类:编程语言   时间:2014-05-11 14:06:30    阅读次数:338
排序算法 堆排序
堆排序使用最大堆。堆排序:将初始序列构造成最大堆; 第一趟排序,将堆顶元素 A[0] 和堆底元素 A[n-1]进行交换,然后调用AdjustDown对堆顶元素进行向下调整,使剩余的前n-1个元素还是堆。然后使堆顶元素与A[n-2]交换,在进行向下调整。直到最后只剩下堆顶元素。...
分类:其他好文   时间:2014-05-11 07:37:51    阅读次数:304
排序算法 之 快速排序
快速排序是基于分治思想的一种排序算法,就像该方法的名字一样,速度比较快,所以叫做快速排序;它的平均时间复杂度为O(N*logN),最坏时间复杂度为O(n2),由于快速排序在序列元素数量多的时候速度比较快,所以很多语言内置的排序方法也是用快速排序实现的。快速排序也有很多优化的版本,比如在排序时基数的选...
分类:其他好文   时间:2014-05-10 23:46:39    阅读次数:553
数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。有两种解法:第一种方法是基于快速排序算法的原理,边排序边判断是否符合输出条件。这种方法的代码我因为没有保存,在电脑蓝屏之后全...
分类:其他好文   时间:2014-05-10 22:45:25    阅读次数:291
合并排序算法时间复杂度分析
一、合并已排序的两个数组,依次比较两个数组元素大小,并按大小加入到暂存数组B,最后保存到A:Algorithm: MERGE(A, p, q, r)输入:数组A[p...q]和A[q+1...r],各自按升序排列输出:将A[p...q]和A[q+1...r]合并后的升序排序的新数组01. s←p; ...
分类:其他好文   时间:2014-05-10 02:43:47    阅读次数:549
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!