
数据结构/算法
文章平均质量分 75
yjptu
这个作者很懒,什么都没留下…
展开
-
选择、插入、冒泡排序
选择、插入、冒泡排序说明:选择排序(Selection sort)、插入排序(Insertion sort)与气泡排序(Bubble sort)这三个排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用(平均与最快的时间复杂度都是O(n2)),然而它们排序的方式确是值得观察与探讨的。解法:选择排序将要排序的对象分作两部份,一个是已排序的,一个是未原创 2013-10-11 14:58:00 · 765 阅读 · 1 评论 -
多维矩阵转一维矩阵
多维矩阵转一维矩阵说明:有的时候,为了运算方便或资料储存的空间问题,使用一维阵列会比二维或多维阵列来得方便,例如上三角矩阵、下三角矩阵或对角矩阵,使用一维阵列会比使用二维阵列来得节省空间。解法:以二维阵列转一维阵列为例,索引值由0开始,在由二维阵列转一维阵列时,我们有两种方式:“以列(Row)为主”或“以行(Column)为主”。由于 C/C++、Java等的记忆体配置方式都是以列原创 2013-10-11 15:14:43 · 2063 阅读 · 0 评论 -
二分查找
二分查找说明:如果搜寻的数列已经有排序,应该尽量利用它们已排序的特性,以减少搜寻比对的次数,这是搜寻的基本原则,二分搜寻法是这个基本原则的代表。解法:在二分搜寻法中,从数列的中间开始搜寻,如果这个数小于我们所搜寻的数,由于数列已排序,则该数左边的数一定都小于要搜寻的对象,所以无需浪费时间在左边的数;如果搜寻的数大于所搜寻的对象,则右边的数无需再搜寻,直接搜寻左边的数。所以在原创 2013-10-11 15:22:15 · 517 阅读 · 0 评论 -
快速排序
快速排序说明:快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。解法:这边所介绍的快速演算如下:将最原创 2013-10-11 15:32:14 · 578 阅读 · 0 评论 -
生命游戏
生命游戏说明:生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出,某一细胞的邻居包括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。复活:如原创 2013-10-11 15:56:18 · 795 阅读 · 0 评论 -
排列组合
排列组合说明:将一组数字、字母或符号进行排列,以得到不同的组合顺序,例如1 2 3这三个数的排列组合有:1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1。解法:可以使用递回将问题切割为较小的单元进行排列组合,例如1 2 3 4的排列可以分为1 [2 3 4]、2 [1 3 4]、3 [1 2 4]、4 [1 2 3]进行排列,这边利用旋转法,先将旋转间隔设为0原创 2013-10-11 16:04:33 · 1029 阅读 · 0 评论