算法
文章平均质量分 86
絮雨清风
分布式文件存储
展开
-
排序——插入排序(C++)
插入排序分为直接插入排序和折半插入排序两种1、直接插入排序算法描述: 设存在一个一维数组 array[0......n-1], 第 i 趟排序是将数组中下标为 i 的第 i + 1 个元素插入到一个已经按值有序排列的i个子序列的合适位置。 (1)第一个元素看成有序序列,从下标为 i = 1 的第二个元素开始,每一趟排序都将下标为 i 的元素插入到之前的有序原创 2016-03-17 19:33:04 · 670 阅读 · 0 评论 -
排序——堆排序(C++)
借鉴:http://blog.csdn.net/caryaliu/article/details/7462415 堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它涉及到堆积和完全二叉树的概念。它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每原创 2016-03-27 09:37:23 · 272 阅读 · 0 评论 -
排序——选择排序(C++)
排序——选择排序(C++)设存在数组 array[0..n-1],数组array中的元素是乱序的。1、选择排序的核心思想是:1)第1趟排序是从第1个元素后面的 n - 1个元素中选择一个值最小于第1个元素的元素与第1 个元素交换位置;2)第2趟排序是从第2个元素后面的n-2个元素中选择一个值最小于第2个元素的元素与第2个元素交换位置;3)以此类推,知道第n-1趟,排序结原创 2016-03-15 12:53:55 · 587 阅读 · 0 评论 -
《算法导论》学习摘要chapter-6——优先队列
本章堆排序内容是《算法导论》教材第二部分《排序与顺序统计量》的第一讲堆排序中的堆排序应用。博客参考部分已经在相应位置标记出。一、优先队列回顾 优先队列:和数据结构中提到的队列不同的是,优先队列更加注重“优先级”三个字。队列具有FIFO原则,但有些应用场合队列的特性并不能满足系统的执行要求,效率太低,这就促使优先队列的产生。比如在系统进程调度中,若根据FIFO原则,一个大进程原创 2016-04-02 17:12:33 · 494 阅读 · 0 评论 -
《算法导论》学习摘要chapter-6——堆排序
本章堆排序内容是《算法导论》教材第二部分《排序与顺序统计量》的第一讲。 堆排序,这是一种O(nlgn)时间的原址排序算法。它使用了一种被称为堆的数据结构,堆还可以用来实现优先级队列。1、堆的概念 数组R[1...n]中,n个关键字序列k1,k2,…,kn,当且仅当该序列满足如下性质(简称为堆性质,以大根堆为例):ki >= k(2i)且ki >原创 2016-04-01 14:06:11 · 584 阅读 · 0 评论 -
排序——快速排序(C++)
1、算法描述:1.1 设当前参加排序的数组为array[0..n-1]选择一个元素(通常称该元素为基准元素)作为基准元素;将小于或者等于基准元素的所有元素都移到基准元素的左边;把大于或者等于基准元素的所有元素都移到分界元素的右边;执行完(2),(3)步骤后,基准元素左边元素序列,基准元素,基准元素右边元素序列正好完成排序;然后在对基准元素左边元素序列和基准元素右边元素序列再次执原创 2016-03-20 21:34:35 · 481 阅读 · 0 评论 -
排序——希尔排序(C++)
希尔排序:希尔排序又称作缩小增量排序,是一种插入排序算法,它出自D.L.Shell,因此而得名。1、算法描述: 希尔排序是插入排序的一个特例。设数组个数为n,使用希尔排序首先需要确定一个元素的间隔数interval间隔。间隔数旨在将待排序数组平均划分成子数组的个数;然后将每个子数组的第i个元素作为一个分组i,这样就形成了interval个元素个数,n/interv原创 2016-03-20 15:16:31 · 656 阅读 · 0 评论 -
排序——冒泡排序(C++)
1、算法描述: 设存在序列array[0. . n-1];选择 array[0] 元素作为基准元素,和array[1]元素作比较,当array[0] > array[1]成立时,则把array[0]和array[1]交换;不成立时,不交换;再把array[1] 和 array[2]进行比较,当array[1] > array[2]成立时,则把array[1]和arra原创 2016-03-20 12:49:55 · 490 阅读 · 0 评论 -
排序
排序基础:1、内排序和外排序 内排序:在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;内排序参加排序的数据量不大。 外排序:在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存放顺序排序方法称为外排序。外排序排序的数据量很大。2、稳定性排序与非稳定性排序 参加排序的项称为排序码或者排序项原创 2016-03-17 20:13:10 · 378 阅读 · 0 评论 -
《算法导论》学习摘要chapter-7——快速排序
快速排序算法是一种性能较好的排序算法,对包含n个数的输入输入,最坏运行情况是:O(n*n),期望运行时间是:O(nlgn)。虽然最坏运行时间很不理想,但在实际应用中,快速排序算法却是最佳选择,这是因为它的期望运行时间很理想,O(nlgn)记号中隐含的常数因子很小。那么,今天我们就来介绍快速排序的算法过程。1、快速排序的描述 首相需要强调一点,快速排序算法也是基于分析思想的算法原创 2016-04-10 12:25:19 · 417 阅读 · 0 评论