java快排思想_Java快排

package quickSort;

/**

* 快速排序

* @author root

*

*/

public class QuickSort {

static int[] data = {0,2,4,5,3,1,7,6};

public static void main(String[] args) {

// TODO Auto-generated method stub

sort(data, 0, data.length-1);

print(data);

}

//快速排序

public static void sort(int[] data, int low, int high){

if(low

int mid = partition(data, low, high);

sort(data, low, mid-1);

sort(data, mid+1, high);

}

}

//以某个数字为枢轴,小的在其左,大的在其右

public static int partition(int[] data, int low, int high){

int temp = data[low];

while(low

while(lowtemp)

high--;

data[low]=data[high];

while(low

low++;

data[high]=data[low];

}

data[low]=temp;

return low;

}

public static void print(int[] data){

for(int i=1; i

System.out.println(data[i]);

}

}

}

Java 快排

基于分治法的快排,用递归实现. 首先讲一下实现的过程. 1.在数组中取一个数作为基准,所谓的基准就是用来对比的数. 2.然后在数组中从后往前找,找到一个逆序数为止,找到之后就把它的值赋值到基准数的位, ...

Java 快排 排序

一.快排的一种 ==================== public class myMain { public static void main(String[] args) { int t[] ...

java快排(两种方法)

快排是最基础的排序算法之一,今天来回顾一下. public class QuickSort { public static void quickSort(int[] array){ if(array ...

java——快排、冒泡、希尔、归并

直接贴代码 快排: public class Test { private static void sort(int[] nums){ if(nums == null || nums.length = ...

java快排思想

1分治思想 1.1比大小在分区 1.2从数组中取出一个数做基准数 1.3将比他小的数全放在他的左边,比他大的数全放在他的右边 1.4然后递归 左边 和右边 }

Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等

本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...

折半、快排、插入排序的Java实现

插入排序 import java.util.Arrays; public class InsertionSort { /** * 对数组里面进行插入排序 * 参数1 数组 * 参数2 数组大小 */ ...

快排+java实现

import java.util.Arrays; public class QuickSort { //三数取中法.取出不大不小的那个位置 public static int getPivotPos( ...

Java实现的各种排序算法(包括冒泡,快排等)

//堆排序 不稳定 import java.util.Arrays; public class HeapSort { public static void main(String[] args) { ...

随机推荐

codeforces 727F. Polycarp's problems

题目链接:http://codeforces.com/contest/727/problem/F 题目大意:有n个问题,每个问题有一个价值ai,一开始的心情值为q,每当读到一个问题时,心情值将会加上该 ...

nodeJS里面的模块

this 打开cmd,执行如下命令 nodeconsole.log(this); 输出如上信息,表示this是global,每个电脑的配置信息不一样的话,可能会有所差别的. 然后新建一个文件,写下如下 ...

mybatis数据源源码剖析(JNDI、POOLED、UNPOOLED)

http://blog.csdn.net/reliveit/article/details/47325189

App测试全(转自鲁德)

1.App测试流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间. 1.3测试资源 ...

Servlet学习记录3

提交表单信息 Web程序的任务是实现服务器与客户端浏览器之间的信息交互.客户端提交的信息可能来自表单里的文本框,密码框,选择框,单选按钮,复选框以及文件域.这些表单信息被以参数形式提交到了服务器.Se ...

opencv学习之路(31)、GrabCut & FloodFill图像分割

一.GrabCut 1.利用Rect做分割 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat ...

mysql常用连接查询

连接数据库PDO $user = "root"; //数据库连接账号 $pass = "root"; //数据库连接密码 $dbname = "tes ...

Centos socket TCP代码

一.功能描述: 能够在Centos中创建TCP socket,实现Client给Server发送消息,Server能够Client发送消息. 二.代码如下: ①client代码: #include & ...

js循环总结

js原生的循环有两种,一般的for循环和for...in循环.还有一种常用jQuery.each()循环. 一. js原生循环 a. for循环,代码如下: var myArray = [1,2,3] ...

OpenACC 异步计算

▶ 按照书上的例子,使用 async 导语实现主机与设备端的异步计算 ● 代码,非异步的代码只要将其中的 async 以及第 29 行删除即可 #include #in ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值