找工作时笔试做的一塌糊涂,连快速排序都不会了。 回来上网搜了半天,很多代码和讲解看完还是一知半解。而且包括百度百科在内,用eclipse一跑,全都有错。。。。。 于是决定还是自己搞吧。 在彻底理解了快速排序的思想后,写了如下自己能理解的代码 ...
分类:
编程语言 时间:
2017-07-01 14:34:39
阅读次数:
149
快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 先看一下这幅图: 把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比, ...
分类:
编程语言 时间:
2016-09-11 22:40:48
阅读次数:
193
对于快速排序,课堂上当时就没理解,今天看了一下,大概可以写出来了 思想:找一个元素作为基准数,然后从数组前后两边取出元素和基准数基表,从后面找到比基准数小的数,下标i,从前边找到比基准数大的数,下标j,然后两数交换,过程中判断并保证iright){ return; ...
分类:
编程语言 时间:
2016-01-21 13:51:25
阅读次数:
156
源代码:今天看了《大话数据结构》的快速排序的算法,按照书中给的部分代码进行了完善,具体的实现如下: 1 /** 2 * java实现快速排序 3 */ 4 public class QuickSort_1 { 5 6 public static void main(String[] args) {....
分类:
编程语言 时间:
2015-08-30 14:19:19
阅读次数:
169
快速排序时间复杂度最理想情况下为O(nlgn),最坏情况为O(n2)空间复杂度为O(1)
分类:
编程语言 时间:
2015-08-06 00:25:56
阅读次数:
150
快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立地排序。快速排序和归并排序是互补的,归并排序将两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序则是当两个子数组有序时整个数组也就自然有序了。在快速排序中,切分的位置取决于数组的内容。
优点:
1.实现简单;
2.适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多;
3.原地排序;
4.时...
分类:
编程语言 时间:
2015-07-25 12:16:54
阅读次数:
119
1 package sorting; 2 3 /** 4 * 快速排序 5 * 平均O(nlogn),最好O(nlogn),最坏O(n^2);空间复杂度O(nlogn);不稳定;较复杂 6 * @author zeng 7 * 8 */ 9 public class Kuaisupai...
分类:
编程语言 时间:
2015-04-25 22:29:42
阅读次数:
294