千千

开阔视野

算法总结

算法已经研究了一段时间了,该来一个总结了。 主要针对时间复杂度,空间复杂度,适应情况这三方面来一个对比。

2017-11-05 21:48:26

阅读数:80

评论数:1

希尔排序

希尔排序的特点 希尔排序是对直接插入的一种优化 稳定性:不稳定 希尔排序的思想 将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序,最后选择增量为1,即使用直接插入排序,使...

2017-10-22 20:37:23

阅读数:186

评论数:24

快速排序

快速排序的特点 快速排序是交换排序的一种,实质上是对冒泡排序的一种改进。 稳定性:不稳定 快速排序的思想 在n个记录中取某一个记录的键值为标准,通常取第一个记录键值为基准,通过一趟排序将待排的记录分为小于或等于这个键值和大于这个键值的两个独立的部分,这时一部分的记录键值均比另一部分记...

2017-10-15 20:58:57

阅读数:910

评论数:21

插入排序

一、插入排序特点:   每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 时间复杂度:O(n2) 稳定性:稳定   二、插入排序图形     三、插入排序的代码:   交换式     for (int i = 1...

2017-10-06 09:37:43

阅读数:127

评论数:14

选择排序

一、选择排序特点: 一个数分别和后面所有待排序的数进行比较 时间复杂度:O(n2) 稳定性:不稳定 二、选择排序图形: 三、选择排序的代码 10个数进行选择排序 交换式: string shu = "排好数的数组:&quo...

2017-09-27 17:48:04

阅读数:157

评论数:34

冒泡排序

一、冒泡排序特点:     一种交换排序     相邻两两比较,若为逆序交换位置     当在一趟起泡过程中没有进行记录交换的操作,这个那个排序过程终止     时间复杂度:O(n2)     稳定性:稳定 二、冒泡排序图形: 三、冒泡排序核心代码: public stri...

2017-09-27 09:28:48

阅读数:156

评论数:37

堆排序

堆排序是对直接选择排序的一种优化: 2个问题值得思考: 1)如何由一个初始序列建成一个堆? 其实这就是一个反复“筛选”的过程: 首先将要排序的所有键值看成一颗完全二叉树的各个结点(这时的完全二叉树并不一定具备堆的特性), 根据完全二叉树性质最后一个非终端节点是第[n/2]个元素,即对于...

2017-09-24 10:37:36

阅读数:217

评论数:39

贪心算法(背包问题)

贪心算法的思想: 不从整体最优考虑,总是做出当前看来最好的选择。 仅根据当前已有的信息做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。 贪心算法的性质: 1)最优子结构:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题...

2017-09-20 08:51:27

阅读数:494

评论数:39

动态规划(0-1背包问题)

在这个暑假过程中,又学习到了很多的算法,发现算法真的是无处不在,很神奇。下面来简单介绍一下动态规划问题。 算法在我们生活中特别常见,例如一个小偷拿着容量为10的背包去商店偷东西,商店里有5种商品,每个商品的(重量,价值)分别为(2,6)、(2,3)、(6,5)、(5,4)、(4,6),小偷怎样才能...

2017-09-18 16:58:08

阅读数:507

评论数:31

提示
确定要删除当前文章?
取消 删除
关闭
关闭