最近在做笔试题时,遇到一道编程题:单向链表反转算法。 一共做了两个版本:递归版和迭代版。 递归版的灵感来源于《Haskell 趣学指南》中非常简洁的快速排序算法的实现。 迭代版的思想和冒泡排序有点像,又不完全一样。 ...
分类:
编程语言 时间:
2017-04-17 09:47:49
阅读次数:
249
冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字。以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。上述过程称为第一趟冒泡排序,接着第二趟对前面n-1个关键字进行同样操作,…… 快速排序是对冒泡排序 ...
分类:
编程语言 时间:
2017-04-15 23:39:59
阅读次数:
748
1. 快速排序算法简介 快速排序方法是对冒泡排序的一种改进,基本思想是将待排序序列分成两部分,使其中一部分的记录都比另一部分的小,随后分别对这两部分再进行重复划分,最终使得整个序列有序。 该方法的基本思想是:(分治策略) 设置low,high两个指针,分别指向序列的第一个记录和最后一个记录。此时lo ...
分类:
编程语言 时间:
2017-04-15 12:26:58
阅读次数:
257
题目描述 利用快速排序算法将读入的N个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入输出格式 输入格式: 输 ...
分类:
编程语言 时间:
2017-04-14 23:18:51
阅读次数:
350
public static void quickSort(int[] A, int low, int high) { if(low < high) { int pivotpos = partition2(A, low, high); //完成pivot的定位 quickSort(A, low, pi ...
分类:
编程语言 时间:
2017-04-11 01:21:46
阅读次数:
199
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组 function bubble_sort($array){ $count = count($array); if ($count <= 0) return false; for($i=0; $i<$count; $i++){ for($ ...
分类:
编程语言 时间:
2017-04-04 23:17:51
阅读次数:
182
快速排序算法 想必大多数程序员接触的第一种排序算法是冒泡排序,冒泡排序的特点是:逻辑简单,实现起来也不难,但在数据量比较大的时候性能比较低。 以数字由大到小的排序为例,写一个简单的冒泡排序。 /** * 冒泡排序 * Created by Administrator on 2017/4/4. */ ...
分类:
编程语言 时间:
2017-04-04 15:07:57
阅读次数:
290
想必大多数程序员接触的第一种排序算法是冒泡排序,冒泡排序的特点是:逻辑简单,实现起来也不难,但在数据量比较大的时候性能比较低。 以数字由大到小的排序为例,写一个简单的冒泡排序。 我们看到,冒泡排序就是两个for循环嵌套,内层循环再加一个if语句做逻辑判断。 通俗点解释冒泡排序就是:外层循环控制冒泡的 ...
分类:
编程语言 时间:
2017-04-04 13:24:10
阅读次数:
289
1045. 快速排序(25) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定N = 5, 排列是1、3、 ...
分类:
编程语言 时间:
2017-03-21 13:00:24
阅读次数:
176
#include <stdio.h>//快速排序算法/*b是起始索引号m是终止索引号.快排的过程是:0.i=第一个元素位置索引号 j=最后一个元素的位置索引号 x等于第i个元素的值1.从位置j开始从右向左找比x小的值的索引号,这个过程就是每一次j都减小1直到找到为止.2.将比x小的值填入到i索引的位 ...
分类:
编程语言 时间:
2017-03-16 20:34:01
阅读次数:
130