2014年3月7日

一步一步写算法(之快速排序)(转)

摘要: 快速排序是编程中经常使用到的一种排序方法。可是很多朋友对快速排序有畏难情绪,认为快速排序使用到了递归,是一种非常复杂的程序,其实未必如此。只要我们使用好了方法,就可以自己实现快速排序。 首先,我们复习一下,快速排序的基本步骤是什么: 1、 判断输入参数的合法性 2、把数组的第一个数据作为比较的原点,比该数据小的数据排列在左边,比该数据大的数据排列在右边 3、按照(2)的方法分别对左边的数组和右边的数据进行和(2)一样的数据排列 那么实际编写代码中,应该怎么做呢? a)首先,判断数据的合法性?voidquick_sort(intarray[],intlength){intmedian=0;if. 阅读全文

posted @ 2014-03-07 17:43 仅此而已_ 阅读(207) 评论(0) 推荐(0)

一步一步写算法(之非递归排序)(转)

摘要: 在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大。作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定。这中间的差别是非常明显的。既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结。 按照我个人的理解,排序可以分为两种:一种是非递归排序,它主要按照非递归的方法对数据进行排序,也就是说主要数据的移位和循环来完成;另外一种就是递归方法,我们在排列当前数据的时候首先把子数据排列有序,然后才会排列当前的数据。这种不断递归调用的方法就是递归排序。 非递归排序的方法很多,这里主要介绍冒泡排序、插入排序、希. 阅读全文

posted @ 2014-03-07 14:51 仅此而已_ 阅读(202) 评论(0) 推荐(0)

导航