代码改变世界

算法与数据结构——排序(十)基数排序

2012-11-23 07:55 by 左眼微笑右眼泪, 639 阅读, 0 推荐, 收藏, 编辑
摘要:我们现在来学习几个线性相关的排序算法,首先是基数排序。 我们平时在打扑克的时候,如果我们要对我们手里的牌进行排序,那么一般我们先会对花色排个序,然后在每个花色里面,再来对数字进行排序。当给一系列数字给我们的时候,我们有排序的时候,也会先按照百位数(假如最高是百位数)排序,如果对百位数相同的再用十位数来排序,再对十位数相同的用个位数来排序,最终整个序列就是有序的了。 ... 阅读全文

程序的国际化

2012-11-19 07:48 by 左眼微笑右眼泪, 317 阅读, 0 推荐, 收藏, 编辑
摘要:以前看到别人的软件可以随便切换语言,当时觉得非常好奇,当时也想自己做一个,但是一直不知道别人怎么做的,后来才知道,原来是通过资源文件来切换语言的。也就是为每种语言添加一个资源文件,然后在程序里面动态的加载这些资源文件。下面做了一个测试的程序,实现了中英文的简单切换,效果如下: 在这个程序里面建了两个资源文件,在资源文件里面,分别设置了窗体的一些属性在不同的语言环境下的值,如... 阅读全文

算法与数据结构——排序(九)快速排序

2012-11-18 17:51 by 左眼微笑右眼泪, 511 阅读, 0 推荐, 收藏, 编辑
摘要:终于轮到我们的终极算法了,快速排序顾名思义,速度肯定是很快的。它的基本思想是:把一个待排序列分隔成两个独立的序列,其中一个序列中的数比关键字小,另一个序列中的数比关键字大,然后对这两个序列再进行排序,最后使整个序列有序。 这个算法里面有两个关键点,一是怎样选择这个关键字?二是怎样把一个序列分成两个子序列,使一个子序列比关键字小,另一个子序列比关键字大? 我们首先... 阅读全文

算法与数据结构——排序(八)归并排序的非递归实现

2012-11-18 16:08 by 左眼微笑右眼泪, 764 阅读, 0 推荐, 收藏, 编辑
摘要:前面我们用递归的方法实现了归并排序,递归比较占用内存空间,能不能用非递归的方法来实现归并排序呢。答案当然是可以的。 使用非递归排序的思路如下(以序列{0,4,8,9,7,1,3,9,2}为例): 1.首先s=1,把数组中数两两归并,并放入一个新数组中(一般就拿它本身的那个数组来放),如果最后多一个数(例如最后一个数字2单独为一组),那么直接把这个数加入到新数组中去... 阅读全文

WebBrowser 当前线程不在单线程单元中的错误

2012-11-07 08:59 by 左眼微笑右眼泪, 1701 阅读, 0 推荐, 收藏, 编辑
摘要:最近在开发的过程中,有一个插件用到了WebBrowser控件,以前一直是好的,转成VS2010版后,以Release模式编译竟然报错了,报的是“当前线程不在单线程单元中,因此无法实例化”的错误。但是我里面除了主线程都没有用到其他的线程啊,就是一个很普通的用法。找了半天找不也问题来,更奇怪的是,如果我换成Debug模式进行编译,它竟然又好了,而且在Debug模式编译后,再切换成Debug模式,它竟然... 阅读全文

算法与数据结构——排序(七)归并排序

2012-11-07 08:13 by 左眼微笑右眼泪, 331 阅读, 0 推荐, 收藏, 编辑
摘要:归并算法其实理解起来很容易,我们以前在学习C++的时候,肯定遇到过这样一道题目,给两个有序的列表,请把他们合并成一个列表,并且有序。相信叫大家写一个函数实现这个功能并不难。但是我们当时怎么没有想到,用这个思想,可以发明出一种排序的算法出来呢,它就是我们要学习的归并排序。 归并排序的原理就是,把一个序列拆分成两个小的序列,把这两个 小的序列排好序好,然后再把它们合并起来。对... 阅读全文

算法与数据结构——排序(六)堆排序

2012-11-05 08:20 by 左眼微笑右眼泪, 455 阅读, 0 推荐, 收藏, 编辑
摘要:在前面的排序算法里面,我们发现每次找到一个最小的数都要进行很多次的比较,比如在n个数里面,我们如果想要找到最小的数,那么就需要比较 n-1次,那么我们想,能不能减少每次比较的次数呢。 其实发现是可以的,在前面的简单选择排序算法里面,我们每次找到最小的数后,剩余的一些数,其实有的是已经经过比较了的,所以在我们寻找第二小的数的时候,完全可以利用第一次的比较结果,但是由于我们没... 阅读全文

算法与数据结构——排序(五)希尔排序

2012-10-26 09:02 by 左眼微笑右眼泪, 571 阅读, 0 推荐, 收藏, 编辑
摘要:前面说的直接插入排序,在某些情况下,它的效率是很高的,比如当要排序的序列很少的时候,或者排序的序列基本有序的时候。当然在现实中,要排序的序列基本上不可能满足这样的条件,如果碰到有非常多数的大序列需要排序,而且这些序列中的数也不是基本有序的,那我们该怎么办,这时候,如果还是使用直接插入排序,那么效率就非常低,很多人会想到,能不能把直接插入排序进行改进呢,你不是说对小序列效率比较高吗,那就... 阅读全文

算法与数据结构——排序(一)概述

2012-10-26 08:08 by 左眼微笑右眼泪, 359 阅读, 1 推荐, 收藏, 编辑
摘要:最近在学习《大话数据结构》这本书,以前总是以为看懂了就以为自己明白,其实不然,等到真正叫把书本关上,要自己来写的时候,发现自己还是不会,所以在这次学习的过程中,为了达到比较好的效果,每次理解了某个算法之后,就关上书,自己来实现一遍,并且把每个算法的思路用自己的话总结出来。以此来加深自己的理解,接下来的一系列都是我在学习《大话数据结构》这本书时的笔记。之所以记录下来,一时为了加深我自己的印象,二是为了使自己养成善于总结的好习惯。因为这些内容是自己学习的一些笔记,所以在里面有很多例子都是使用的《大话数据结构》这本书上面的,请大家不要见怪。另外,其他的一些内容属于我个人的理解,如果有错误,还请大家. 阅读全文

算法与数据结构——排序(四)简单插入排序

2012-10-25 21:49 by 左眼微笑右眼泪, 722 阅读, 0 推荐, 收藏, 编辑
摘要:直接插入排序,从名字上来看,它就是将一个数选择一个恰当的位置插入到一个有序的列表中,让插入这个数后的列表仍然是有序的。它实现起来的原理其实很简单,下面是一个简单的示意图: 我们假设有一个空列表,然后有10个数{4,2,8,0,5,7,1,3,9,6}, 1. 首先,第一个数4插入到列表中,它不用进行任何比较,因为列表中此时并没有任何数。 2... 阅读全文
上一页 1 ··· 7 8 9 10 11 12 13 14 15 16 下一页