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<high){
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<high){
while(low<high && data[high]>temp)
high--;
data[low]=data[high];
while(low<high && data[low]<temp)
low++;
data[high]=data[low];
}
data[low]=temp;
return low;
} public static void print(int[] data){
for(int i=1; i<data.length; i++){
System.out.println(data[i]);
}
}
}
Java快排的更多相关文章
- 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) { ...
随机推荐
- opencv,用摄像头识别贴片元件的定位和元件的角度(转载)
经过半个月学习opencv有点小成果,用摄像头识别贴片元件的定位和元件的角度(转载) (2013-04-17 16:00:22) 转载▼ 分类: 学习笔记 先说一下开源的opencv真是一件伟大的 ...
- 运行TensorFlow代码时报错
运行TensorFlow代码时报错 错误信息ImportError: libcublas.so.10.0: cannot open shared object file 原因:TensorFlow版本 ...
- Cubase如何进行音频移调
- C# .NET 微信开发-------当微信服务器推送消息时如何接收处理
最近一直在看微信,整整一个月了,看到现在说实话还有很多没看的,从前两周一点看不懂到现在单个功能的一步步实现,不知道这样的速度是否太慢了. 不过现在往下看还是有思路了,目前整个文档完成学习只有1/3左右 ...
- 5.Dropout
import numpy as np from keras.datasets import mnist from keras.utils import np_utils from keras.mode ...
- 数据库——Oracle(3)
1 排序:对查询返回的结果,根据某一个列或者某几个列的列值大小进行升序或者降序排列. 1)根据某一个列的列值大小进行升序或者降序排列 格式: select 列名/* from 表名 order by ...
- [转载]Spark-Task not serializable错误解析
Spark-Task not serializable错误解析 2018年05月17日 15:33:03 沙拉控 阅读数:1509 在学习SparkStreaming的时候偶然出现的一个问题,先看 ...
- 无法连接Web 的 IIE 问题
我一个解决方案里有两个项目在一块,其中一个就突然凉凉了 然后在网上找了很多,基本都是删除vs文件,在启动,幸运的是,并没什么用. 最后我用了这个: 打开Visual Studio, 右键单击网站 &g ...
- maven 项目下 Maven Dependencies 下列表为空
问题如题,如下图: 解决: 选中 Maven Dependencies ,右键 属性 如下图: 把 resolve dependencies from workspace projects 这 ...
- docker下安装运行mysql的过程以mysql5.7为例
一.查找mysql资源 docker search mysql 其实这步顶多是看看有哪些mysql资源,除非你自己commit过一个特定的版本,否则直接执行下一步 二.安装mysql docker p ...