//哈夫曼树构造的基本思想,从list中取出最小的两个节点,构造出他们的父节点,
//然后将这两个节点从list中删除,将他们的父节点插入list中,左孩子code设置为0,右孩子code设置为1,
//直到list为空。
//接下来遍历以list中节点为根节点的树。...
分类:
其他好文 时间:
2014-09-16 17:29:00
阅读次数:
204
1:合并排序 合并排序算法使用分治策略实现对n个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最后总将排好序的子集合合并成所要求的排好序的集合。算法描述如下:void MergeSort(Typr a[],int left,int right....
分类:
其他好文 时间:
2014-09-16 12:15:50
阅读次数:
163
希尔排序又称“缩小增量排序”。
它的基本思想是:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录”基本有序”时,(当增量为1时)再对记录进行一次直接插入排序。
可以看出希尔排序希尔排序是改进了的插入排序。
特点:
子序列的构成不是简单的”逐段分割”,而是将相隔某个”增量”的记录组成一个自序列。这使得希尔排序中...
分类:
其他好文 时间:
2014-09-15 19:35:49
阅读次数:
204
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一...
分类:
编程语言 时间:
2014-09-15 17:18:09
阅读次数:
235
今天的小程序是厄拉多塞筛--寻找小于整数N的所有素数厄拉多塞筛的基本思想是:从最小的素数2开始,首先把2圈出,然后将2的倍数去除。找出下一个未被圈出的数3,将3的倍数去除。找出下一个未被圈出的数35,将5的倍数去除,以此类推,直到N的平方根为止,就不需将其倍数去除了。最后剩余的被圈出的数就是要找的素...
分类:
其他好文 时间:
2014-09-14 20:41:37
阅读次数:
221
Sort a linked list inO(nlogn) time using constant space complexity.归并排序的基本思想是:找到链表的middle节点,然后递归对前半部分和后半部分分别进行归并排序,最后对两个以排好序的链表进行Merge。/** * Definitio...
分类:
其他好文 时间:
2014-09-13 13:15:45
阅读次数:
155
直接插入排序基本思想:有一列数,把待排数字插入到前面已排好的数字序列中。比如 n个数做直接插入排序 56,14,45,69,42,8,10开始时有序表中只包含一个元素,无序组中有n-1个元素有序表无序表5614,45,69,42,8,10从无...
分类:
编程语言 时间:
2014-09-12 11:45:23
阅读次数:
197
快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
一趟快速排序的具体做法:
1、附设两个指针low和high,它们的初值分别为low和high,设枢轴记录的关键字为pivotkey。
2、首先从high所指位置起向前搜索找到第一...
分类:
其他好文 时间:
2014-09-11 09:39:51
阅读次数:
216
8种排序之间的关系:1,直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 1 package com.njue; 2....
分类:
编程语言 时间:
2014-09-10 09:30:50
阅读次数:
318
0-1背包问题:
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
这个问题的特点是:每种物品只有一件,可以选择放或者不放。
算法基本思想:
利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。
...
分类:
其他好文 时间:
2014-09-09 21:34:59
阅读次数:
406