QuickSortDemo
package com.suning.sntcscase.controller.MutiThread;
import static jdk.nashorn.internal.objects.Global.print;
public class QuickSortDemo {
public static void main(String[] args) {
int[] arr = {5, 6, 7, 81, 2, 66, 88, 17, 99};
printArr(arr);
quickSort(arr, 0, arr.length - 1);
System.out.println();
printArr(arr);
}
private static void printArr(int[] arr) {
for(int i=0;i<arr.length; i++){
System.out.print(arr[i] +"\t");
}
}
private static void quickSort(int[] arr, int low, int high) {
int start = low;
int end = high;
int key = arr[low];
//从右往左找小
while (end > start) {
while (end > start && arr[end] >= key)
end--;
if (arr[end] <= key) {
int tmp = arr[end];
arr[end] = arr[start];
arr[start] = tmp;
}
//从左往右大
while (end > start && arr[start] <= key)
start++;
if (arr[start] >= key) {
int tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
}
}
///递归
if(start <low) quickSort(arr,0,start-1);
if(end <high) quickSort(arr,end+1,high);
}
}
QuickSortDemo的更多相关文章
- 【整理】待毕业.Net码农就业求职储备
声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...
- Java基础知识强化56:经典排序之快速排序(QuickSort)
1. 快速排序的原理: 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其 ...
- 快速排序算法分析--C++版
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试喜欢考这个. 快速排序是C.R.A.Hoar ...
- java快速排序引起的StackOverflowError异常
写在前面:这篇随笔主要记录一下递归调用引起的虚拟机栈溢出的情况以及通过参数配置了虚拟机栈大小来使递归调用可以顺利执行.并没有对涉及到的一些概念进行详细的解释(因为我自己目前对这些概念并不是特别清楚), ...
- 排序算法<No.2>【快速排序】
最近因为项目需要,研究AI相关的东西,主要是算法相关的. 有感触,所以决定,来一个系列的博文,可能会耗时很久,那就是要完成算法系列.起点,从最常用最基本的排序开始.后续会跟进其他类型的,比如树,图等领 ...
- Java实现:数据结构之排序
Java实现:数据结构之排序 0.概述 形式化定义:假设有n个记录的序列(待排序列)为{ R1, R2 , -, Rn },其相应的关键字序列为 { K1, K2, -, Kn }.找到{1,2, - ...
- 快速排序算法思路分析和C++源代码(递归和非递归)
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试喜欢考这个. 快速排序是C.R.A.Hoar ...
- .net面试技术要点总结
[整理]待毕业.Net码农就业求职储备 本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些 ...
随机推荐
- A and B and Lecture Rooms(LCA)
题目描述 A and B are preparing themselves for programming contests. The University where A and B study i ...
- .net反射机制的简单介绍
1.什么是反射 Reflection,中文翻译为反射. 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分: ‘程序集(Assembly)’.‘模块(Module)’.‘类型(cl ...
- ThreadLocal如何回收value,什么时候回收?(学习笔记)
1)ThreadLocal如何回收value,什么时候回收?从ThreadLocal中的内部类分析:① static class ThreadLocalMap { /** * The entries ...
- list转json数组
lights为arraylist java后台代码: try { org.tempuri.TLight[] lights = phlightSoapProxy.getLights(); ...
- oracle封装OracleHelper
1.Oracle 封装类 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...
- 开发(一) ardunio环境配置 针对esp32-cam 更多例程
第一种 简单版本,针对获取mpu9250数据, http://www.bubuko.com/infodetail-3093785.html 第二种 浮渣版本,针对ESP32获取图像,以及跟多开发例程 ...
- python神器——Anaconda的安装与优化配置
python 对于初学者来说,原版的python在使用的时候非常麻烦,特别是在添加库.升级库的时候总是会报好多错误,缺这缺那.但是自从有了Anaconda以后,妈妈再也不用担心我用不了python啦! ...
- Gaussian Processes
原文地址:https://borgwang.github.io/ml/2019/07/28/gaussian-processes.html 一元高斯分布 概率密度函数:\[p(x) = \frac{1 ...
- java 多页pdf转化为多张图片
相关jar包: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian ...
- Eclipse解决项目中找不到Maven Dependencies
项目中找不到Maven Dependencies 正常的Maven项目应该是这样的 自己的项目中却没有Maven Dependencies 先做第一步 若项目中还没有出现Maven Dependenc ...