原文:1045 快速排序(25 分)

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元 例如给定 N , 排列是 。则: 的左边没有元素,右边的元素都比它大,所以它可能是主元 尽管 的左边元素都比它小,但其右边的 比它小,所以它不能是主元 尽管 的右 ...

2018-09-06 21:04 0 917 推荐指数:

查看详情

浙大PAT 1045. 快速排序(25)

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定N = 5, 排列 ...

Thu Dec 17 00:35:00 CST 2015 0 1887
快速排序和二查找

一、二查找和普通查找的优缺点 普通查找:原理简单,不需要数组有序;当元素个数很大时候,效率较低; 二查找,需要数组有序排列,但是查找效率高; 二、二查找实现 //查找指定元素在循序数组中的索引 function binary_search(arr,key){ var ...

Tue Mar 06 22:12:00 CST 2018 0 907
三向切快速排序

快速排序在实际应用中会面对大量具有重复元素的数组。例如加入一个子数组全部为重复元素,则对于此数组排序就可以停止,但快排算法依然将其切分为更小的数组。这种情况下快排的性能尚可,但存在着巨大的改进潜力。(从O(nlgn)提升到O(n)) 一个简单的想法就是将数组分为三部:小于当前切元素 ...

Tue Dec 08 00:34:00 CST 2015 0 4877
快速排序算法原理及实现(单轴快速排序、三向切快速排序、双轴快速排序

欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. 单轴快速排序的基本原理 快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素 ...

Sun Sep 18 08:49:00 CST 2016 6 15277
排序快速排序

要点 快速排序是一种交换排序快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个 ...

Thu Mar 05 01:12:00 CST 2015 17 16133
排序算法的实现:冒泡排序、选择排序快速排序、二查找、快速排序

冒泡排序: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要 ...

Sun Oct 09 23:01:00 CST 2016 0 10011
学习快速排序和二查找算法

1. 快速排序的思想采用的是分治算法实现,从头选择一个元素是作为“哨兵元素”,然后从尾部开始寻找一个比“哨兵元素“小的元素,然后跟它交换,接着从头开始寻找比“哨兵元素“大的;元素,然后交换,直到“哨兵元素“的左边都“哨兵元素“小,右边都比“哨兵元素“大为止,这算是一次划分,快速排序 ...

Sun Oct 16 01:23:00 CST 2016 0 3294
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM