![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 52
悦兮Yui
这个作者很懒,什么都没留下…
展开
-
希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了(此时插入排序较快)。原创 2016-03-29 21:41:39 · 1136 阅读 · 0 评论 -
三个最简单的排序算法:插入、冒泡、选择
插入排序冒泡排序选择排序原创 2016-03-29 20:40:59 · 351 阅读 · 0 评论 -
华为oj初级题目——合唱队
计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得T1<T2<......<Ti-1<Ti>Ti+1>......>TK。原创 2016-03-26 11:11:09 · 964 阅读 · 0 评论 -
生成n位格雷码
问题:产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。 例如以下为3位元的格雷码: 000 001 011 010 110 111 101 100 。 如果要产生n位元的格雷码,那么格雷码的个数为2^n.假设原始的值从0开始,格雷码产生的规律是:转载 2016-03-25 16:17:19 · 1076 阅读 · 0 评论 -
堆排序
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。转载 2016-03-24 20:41:08 · 439 阅读 · 0 评论 -
任意2n个整数,从其中选出n个整数,使得选出的n个整数和同剩下的n个整数之和的差最小
<编程之美>数组分割问题题目概述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。 假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。原创 2016-03-21 14:01:29 · 9625 阅读 · 1 评论 -
回溯法解决n后问题
问题的解空间用回溯法解问题时,明确定义问题的解空间。问题的解空间至少应包含问题的一个(最优)解。 定义了问题的解空间后,还应将解空间很好地组织起来,使得能用回溯法方便地搜索整个解空间。通常将解空间组织成树或图的形式。回溯法的基本思想……原创 2016-03-19 17:32:12 · 7465 阅读 · 0 评论 -
贪心算法解决单源最短路径问题
贪心算法总是做出在当前看来最好的选择,也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优选择。贪心算法的基本要素 1. 贪心选择性质 2. 最优子结构性质原创 2016-03-18 23:50:07 · 19907 阅读 · 1 评论 -
基于分治策略的排序算法:合并排序和快速排序
基于分治策略的排序算法分治法的基本思想是将一个规模为n的问题分解成k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解决这些子问题,然后将各子问题的解合并得到原问题的解。原创 2016-03-18 20:59:58 · 2669 阅读 · 0 评论