最新文章列表

快速排序

快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。 步骤为: 从数列中挑出一个元素,称为 "基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分割结束之后,该基准就处于数列的中间位置。这个称为分割(partiti ...
gaojiehigh 评论(0) 有844人浏览 2012-07-05 17:28

主元素算法

1.算法描述(算法分析2.26) 大小为N的数组A,其主元素是一个出现超过N/2次的元素(从而这样的元素最多只有一个)。例如,数组 3,3,4,2,4,4,2,4,4只有一个主元素4; 3,3,4,2,4,4,2,4没有主元素 求出主元素,没有请指出   2.书中列出了一种算法,暂且叫递归法,这可以自己看书,其复杂度也只有O(n)   下面介绍两种其他的方法。 在网上还有其他一些方法 ...
hao3100590 评论(0) 有2103人浏览 2012-06-04 15:32

快速排序算法实现

#include <stdio.h> #include <stdlib.h> int Index(int *array,int left,int right){//用于得到枢轴的坐标     int temp = 0;     int *flag = &array[left];     //开始时写成了flag = array[left],这是不正确的,因为在下面做交 ...
luoqidunwu 评论(0) 有1024人浏览 2012-05-26 18:02

Java排序方法之:快速排序

package com.liany.demo.sort; import java.util.Random; /** * 参考wiki源码写了一遍,并加了注释和自己的理解。  * * 步骤: * 1、取一随机位置的元素作为基准(pivot,或叫枢纽) * 2、将基准移到最后位置(方便数组的其它元素与之比较),将小于此基准的元素放到数组的前面, 然后将 ...
modiliany 评论(0) 有4665人浏览 2012-04-05 21:51

java完美实现快速排序

java开发者是不需要考虑排序问题的,因为jdk已经提供了现成的排序功能供你调用。但这并不妨碍我们试图用java代码自己实现一个快速排序功能。 public class QuickSort { public void sort(int a[],int left,int right){ if(left>=right) return; int i=left, j=right, ...
豌豆苗 评论(0) 有1237人浏览 2012-03-31 16:42

2012/3/29----快速排序

前面用到了分治算法所演变出来的一种排序---归并排序。这里,我们介绍另一种分治算法演变出来的排序算法---快速排序。 快速排序通过选取数组中的关键字,把一个A[n]数组划分为3部分:A[key]=关键字,A[0...key-1]={比关键字小的元素},A[key+1...n-1]={比关键字大的元素}。然后递归调用这个过程便可实现对数组的排序。   /* *分治算法引申出来的又一种排序算法 ...
akon405 评论(0) 有954人浏览 2012-03-29 11:48

快速排序

快速排序  自己理解了大半天时间 - - 蛋疼  另一种经典的交换排序是快速排序,快速排序的效率很高,但是空间复杂度较大,因为快速排序使用了递归,而递归的实现需要一个栈。快速排序的算法思想是:(假设数据存放在数组a[n]中)   1.如果待比较的数组长度为0或者1,则不用比较,直接返回。   2.如果待比较的数组长度大于1,则随机的选择一个中枢值(centrum),然后分别从数组的两端开始遍历,并且 ...
morefree_ 评论(0) 有481人浏览 2012-03-13 16:18

常用排序算法

1. 插入排序:   #include "main.h" void insertSort(int *data, int length) { int pos, i , temp; for (pos = 1; pos < length; pos++) { temp = data[pos]; for ...
icarusliu 评论(0) 有1339人浏览 2012-03-03 23:16

各排序方法比较

断断续续地看了《JAVA数据结构与算法》,一直没有好好整理下,久了就忘记了。这里把排序的笔记记录如下(代码都出自《JAVA数据结构与算法》): 1、 冒泡排序: (1) 思想:从左边第一个数据项开始,跟其右边的数据项比较,如果左边的数值大于右边的,则进行交换,这样直到最后一个结束,一次循环就把最大的数放在最右边。第二次同样,到右边的倒数第二个结束,以此类推。直到所有的数据项有序。 (2) 代码: f ...
午刀十 评论(0) 有1003人浏览 2012-02-07 15:57

快速排序

思想   快速排序算法  例 确定1个数值 大的在后面 小的那前面 在以数值为中心分割 前后2个数组分别做快速排序~如此递归!   下面是1个demo   设 ...
q15106202446 评论(0) 有989人浏览 2012-01-19 16:23

快速排序

package com.kingdee.gmis.algorithm; public class QuickSort2 { public void quickSort(int[] arrs) { quickSort(arrs, 0, arrs.length - 1); } private void quickSort(int[] arrs, int l, int ...
yueyemaitian 评论(0) 有1279人浏览 2011-12-11 18:11

python 诠释 快速排序

  快速排序使用分治法 (Divide and conquer)策略来把一个串行 (list)分为两个子串行(sub-lists)。 步骤为: 从数列中挑出一个元素,称为 "基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区( ...
wanglei6744 评论(0) 有2910人浏览 2011-12-04 16:06

PHP实现各种排序

<?php /** * 各种排序 * @author zhaojaingwei * @since 2011/11/21 16:14 * */ $list = array(3,5,1,2,10,8,15,19,20); //快排 function fast(&$list, $low, $high){ if($high - $low > ...
z32556601 评论(0) 有953人浏览 2011-11-23 17:32

erlang初探二之快速排序

  之前学习java的时候并没有学习数据结构,觉得有点遗憾,毕竟数据结构才是基础。所以打算这次学习erlang的时候好好的把数据结构补一补。       它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。   -module ...
orchod 评论(0) 有1764人浏览 2011-11-22 12:24

快速排序java代码(算法导论第7章)

其原理见附件图形,代码如下: package yangkunlin.algorithm.sort; import yangkunlin.algorithm.tool.SortTool; public class QuickSort { /** * 快速排序 * 最坏运行时间O(n^2);期望运行时间O(nlgn) * 实现就地排序 * @param so ...
yangkunlin 评论(0) 有2036人浏览 2011-10-13 16:11

java排序算法系列(二)——快速排序

测试代码: package com.zlpy.quicksort; public class MainClass { /** * @param args */ public static void main(String[] args) { int[] r={48,62,35,77,43,55,14,98,24}; //排序前输出 Quic ...
HUYIZIZHEN 评论(0) 有970人浏览 2011-09-29 09:15

Java Arrays 快速排序算法的实现

我们知道Java在排序上分别使用了快速排序和合并排序。下面我们就研究一下这两种排序。 本节先分析快速排序,我们以Int数组的排序为例。   Java的排序算法是这样子的: 方法声明如下: sort1(int x[], int off, int len) 对于数组个数小于7的情况下,使用插入排序: if (len < 7) {     for (int i=off; i ...
jbm3072 评论(0) 有3225人浏览 2011-09-16 12:48

Java Arrays和Collections类的排序算法

在Java的Arrays和Collections类里,分别提供了对数组和List的排序算法。不过今天在看Arrays排序算法时,发现对float/long/int/char等进行排序时,使用的算法是快速排序;而对于Object数组排序则是使用的是合并排序(改进后的)。 想了一下,原因很容易理解。快速排序是不稳定的算法,这意味着对于相同的元素经过排序后会出现位置调换的情况。而对于基本类型的数组,这个 ...
jbm3072 评论(0) 有3563人浏览 2011-09-16 11:27

java实现快速排序

/** * 快速排序 * @author zhoujianghai * zhoujiangbohai@163.com */ public class QuickSort { /** * @param args */ public static void main(String[] args) { int data[] = {12,34,56,7, ...
zhoujianghai 评论(0) 有1348人浏览 2011-09-08 11:00

最近博客热门TAG

Java(141741) C(73643) C++(68602) SQL(64557) C#(59604) XML(59131) HTML(59042) JavaScript(54916) .net(54782) Web(54511) 工作(54116) Linux(50906) Oracle(49861) 应用服务器(43285) Spring(40811) 编程(39452) Windows(39380) JSP(37540) MySQL(37266) 数据结构(36420)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics