数据结构与算法
Shldreamfly
这个作者很懒,什么都没留下…
展开
-
图论相关算法
图是由顶点和边组成原创 2014-04-16 17:02:14 · 416 阅读 · 0 评论 -
c++ map使用详解
这不是API,文档,这是一个小的例子,相信介绍到的yon原创 2014-10-25 11:49:00 · 512 阅读 · 0 评论 -
Huffman编码的c语言实现
二叉树:约定左分支表示字符‘0’,右分支表示字符‘1’,则可以用从根结点到叶子结点的路径上的分支字符串作为该叶子结点字符的编码。如此得到的编码必是前缀编码。原创 2014-08-29 22:47:30 · 844 阅读 · 0 评论 -
外排序
外排序就是对外设存储设备上文件的排序,外存文件往往无法装入内存,那我们怎么样才能对文件内容进行排序?回想归并排序算法的思想,很容易想到解决方法,没错,就是将文件分成M个块,使得每一个块都能装入内存,然后对每一个块进行内排序,之后进行K路归并,依次将比较结果放入目标位置。排序部分算法的研究与实现,到此结束。不管结果如何,我们都要前行。人生总有低迷时期,只要自己脚踏实地地前行,坚定好方向,原创 2014-03-26 12:03:09 · 384 阅读 · 0 评论 -
堆排序
堆排序的java实现代码以及详细的注释(不喜勿喷,嘿嘿)package com.dlut.sort;import org.junit.Test;public class HeapSort { private int[] aa = {9,0,1,3,2,5,4,7,6,8,10,12,11,13,14,17,16,15,34}; @Test public void heapSort(原创 2014-03-22 11:21:58 · 442 阅读 · 0 评论 -
归并排序的若干理解
归并排序的的核心思想是:1.使待排序列的左右两半部分都是有序的。2.合并有序的两半部分。详见代码(源码面前。了无秘密)package com.dlut.sort;import org.junit.Test;public class MergeSort { private int[] arr = {9,0,1,3,2,5,4,7,6,8,100,12,11,13,14,17,1原创 2014-03-22 14:19:17 · 393 阅读 · 0 评论 -
归并排序的非递归实现
分析归并排序可知:最底层的合并元素之间的间隔为1,越向上,间隔则变为原来的两倍,基于此我们有如下的非递归实现方案:package com.dlut.sort;import org.junit.Test;public class NoRecurMergeSort { private int[] arr = {9,0,1,3,2,5,4,112,7,60,8,100,12,11,13,1原创 2014-03-22 15:14:49 · 466 阅读 · 0 评论 -
快排算法的一种实现
快速排序的思想很好理解:递归地执行下列两步:1.选一个轴值,移动待排元素是的轴值左边的元素都小于轴值,轴值右边的元素都大于轴值,返回该轴值的位置。2.对轴值左边待排元素序列执行1,对轴值右边待排元素序列执行1.3.当待排序列的长度为1时,退出程序。java实现的程序如下:package com.dlut.sort;import org.junit.Test;public c原创 2014-03-22 23:51:21 · 629 阅读 · 0 评论 -
插入排序
其实取名为插入排序,倒不如叫做移动排序,每次内部循环只需把小的往前移,待到外围循环循环结束时,一定是有序的。原创 2014-03-21 16:44:57 · 434 阅读 · 0 评论 -
关于shell排序的一点理解
以前大学老师讲shell排序,当时鄙人我睡眼惺忪,意识模糊,听得一知半解,时隔多年,今日闲暇,拜读《算法导论》看到shell排序,勾起了我的编程欲望,当要一探究竟。废话少说,进入正文:shell排序又称缩减增量排序,它其实是基于直接插入排序的。分析直接插入排序,可以知道:1. 若待排序记录序列按关键字基本有序,则排序效率可大大提高,可以大大减少移动次数;2. 待排序记原创 2014-03-21 15:32:48 · 886 阅读 · 0 评论 -
厄拉多塞筛算法及实现
厄拉多塞筛算法是一种用于计算小于N原创 2014-04-16 13:56:38 · 1880 阅读 · 0 评论 -
N球称重问题的一般归纳
听说之前百度有道面试题----八个球中,有一个球是坏球。给你一个天平,如何找到这个坏球并使称重次数最少。不说那么多废话,答案如下: 分成四份,每份两个球: 2 2 2 2前两份比较,如果天平平了,说明这四个球是好的。如果天平不平说明后面四个球是好的。确定了好球之后,使用二分法测试四个坏球。可知最大称重次数为3.归纳:这类称球问题,首先要原创 2015-01-31 23:15:37 · 2213 阅读 · 0 评论