算法分析
成霸天
这个作者很懒,什么都没留下…
展开
-
排序算法(1):主流排序算法概述
在学习算法的时候,最先接触的就是排序算法。排序算法是一种将无序的数组按照大小顺序排列起来的一种算法。一个好的算法效率可以比基本算法高很多。本文主要讨论了交换排序,选择排序,插入排序,归并排序,分布排序这五大类。下面给出一个表格,列举了一些常用的排序算法:分类排序算法插入排序直接插入排序,希尔排序,二叉树排序交换原创 2013-10-09 08:44:23 · 827 阅读 · 1 评论 -
排序算法(2):直接插入排序
直接插入排序时一种对少量元素有效的排序方式。它的工作原理是构建有序的序列,每当扫描一个元素时,插入已有的序列位置,将后面的元素依次挪位。这种做法使得空间开销仅为O(1)。 下面给出具体算法步骤:首先,将第一个元素视为一个有序序列取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者原创 2013-10-09 09:02:54 · 1016 阅读 · 1 评论 -
排序算法(3):冒泡排序与快速排序
冒泡排序算法原理:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 //冒泡排序 for(int i=1;i<9-1;i++)原创 2014-04-01 14:12:55 · 657 阅读 · 0 评论 -
字符串排序
C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba原创 2014-09-02 15:50:01 · 549 阅读 · 0 评论