QuickSort 快速排序 基于伪代码实现
本文原创,转载请注明地址 http://www.cnblogs.com/baokang/p/4737492.html
伪代码
quicksort(A, lo, hi)
if lo < hi
p = partition(A, lo, hi)
quicksort(A, lo, p - 1)
quicksort(A, p + 1, hi) partition(A, lo, hi)
pivot = A[hi]
i = lo //place for swapping
for j = lo to hi - 1
if A[j] <= pivot
swap A[i] with A[j]
i = i + 1
swap A[i] with A[hi]
return i
Java实现
public void quickSort(int[] a,int lo, int hi){
if(lo<hi){
int p=partition(a, lo, hi);
quickSort(a,lo,p-1);
quickSort(a, p+1, hi);
}
}
public int partition(int[] a,int lo, int hi){
int i,j,privot;
privot=a[hi];
i=lo;
for(j=lo;j<=hi-1;j++){
if(a[j]<privot){
swap(a, i, j);
i++;
}
}
swap(a,i,hi);
return i;
}
public void swap(int[] a,int lo,int hi){
int s=a[lo];
a[lo]=a[hi];
a[hi]=s;
}
QuickSort 快速排序 基于伪代码实现的更多相关文章
- Algorithms - Quicksort - 快速排序算法
相关概念 快速排序法 Quicksort 也是一个分治思想的算法. 对一个子数组 A[p: r] 进行快速排序的三步分治过程: 1, 分解. 将数组 A[p : r] 被划分为两个子数组(可能为空) ...
- quicksort 快速排序 quick sort
* Java基本版 package cn.mediamix; import java.util.LinkedList; public class QuickSort { public static v ...
- HeapSort 堆排序 基于伪代码实现
此文原创, http://www.cnblogs.com/baokang/p/4735431.html ,禁止转载 GIF 动态图 伪代码 /* From Wikipedia, the free en ...
- QuickSort快速排序的多种实现和优化
并不是很懂wikipedia上面说快排的空间复杂度最坏情况是O(NlogN)啊,难道不是空间复杂度平均O(logN),最坏O(N)么--原地快排难道不是只要算递归栈深度就好了么--有谁给我解释一下啊( ...
- Java QuickSort 快速排序
Java QuickSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational ...
- 快排 quicksort 快速排序
首先看这个 http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html 看完后就没有什么不理解的了... PS 注意 凡是在一 ...
- 基于Java实现的快速排序
简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这 ...
- 排序算法TWO:快速排序QuickSort
import java.util.Random ; /** *快速排序思路:用到了分治法 * 一个数组A[0,n-1] 分解为三个部分,A[0,p - 1] , A[p] , A[p + 1, n-1 ...
- 现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 文章目录 1.UML类图 2.源码: 3.优缺点分析 1.UML类图 2.源码: package com.bac ...
随机推荐
- Sublime中Markdown的安装与使用
摘要:为什么用它,因为用markdown写出来的东西很好看,展示下:isujin.com(差不多就是这个样子啦,好看不?) 网页版Markdown编辑器有: 简书 jianshu.com等 客户端Ma ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- iOS widget开发
链接: iOS Widget开发 iOS开发之构建Widget iOS开发Widget iOS开发-widget基础 ios8新特性widget开发 ios 10 开发-widget实现 Widget ...
- 为WebService指定线程池
通过阅读WebService发布过程的源代码,可以配置自定义的线程池 package org.zln.ws.server;import com.sun.xml.internal.ws.api.Bind ...
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决记录
转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50511172 本文出自:[lxk_1993的博客]: 3个错误non-zero e ...
- 关于NODE NPM 输入命令后没反应的问题
输入NPM 命令 如 install config help都没有反应,光标在下面一直闪,只有 -v 有反应,查了下,是npm config set prefix 改包的路径出问题了 解决办法就是删 ...
- 再谈Newtonsoft.Json高级用法
上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...
- js的this和面向对象编程
很奇怪的是很多书或资料没有把这个事情讲清楚. 关键就是在于没有一个整体的思维技术模式,问题被隔离了所以反而不容易理解. 我们先看this,这是js的关键字,指示函数的上下文对象. 这里问题就来了,比如 ...
- 创建一个新的Activity
1.创建一个类继承Activity类,并创建对应的布局文件,在onCreate方法中加载该布局. 2.在AndroidManifest.xml声明该组件 注:如果想配置一个activity在桌面上有该 ...
- [Bundling and Minification ] 四、总结
一.ASP.NET MVC 里面提供了一个默认的绑定集合BundleTable.Bundles 位于System.Web.Optimization下的静态类BundleTable中的一个静态变量.以下 ...