代码改变世界

随笔档案-2012年10月24日

算法与数据结构——排序(三)简单选择排序

2012-10-24 08:10 by 左眼微笑右眼泪, 858 阅读, 收藏,
摘要: 我们还记得每种冒泡排序的算法吗?它的原理就是依次把每一个数与除这个数之外的其他数进行比较,然后进行交换。很显然,这个方法有一个弊病,那就是如果另外有一个数比这个数小,它们立刻交换位置,比如,如果a1与a2进行比较,发现a2比a1小,它们就进行交换,其时,这个时候根本不需要交换,因为我们是需要找到最小的数,放到最前面,而此时a2只是比a1小,我们并不能确定它就是最小的数,它还没有跟后面的a3,... 阅读全文

算法与数据结构——排序(二)冒泡排序(下)

2012-10-24 07:43 by 左眼微笑右眼泪, 302 阅读, 收藏,
摘要: 在上一篇里面说了,正宗的冒泡排序是相邻的两个数进行比较,如果符合条件,那么就进行交换,这样第一次比较完成后的结果可以对第二次比较有帮助。在有很多数据的时候,这种排序算法的效率会高一些。但是这种算法还有没有改进的地方呢? 我们会发现,如果把一个有序的序列用这种方法去进行排序,它比较的次数并没有减少。其实经过第一次比较,如果没有一次数据的交换,我们就可以断定这个序列是有序的,... 阅读全文