QuickSearch快排
时间:2022-07-25
本文章向大家介绍QuickSearch快排,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import java.util.Scanner;
/**
* @program:
* @description:
* @author: Jay
* @create: 2020-09-21 19:23
**/
public class QuickSearch {
public static void QKsort(int[] arr, int low, int high) {
if (low < high) {
int pos = QKpass(arr, low, high); //划分两个子表
QKsort(arr, low, pos - 1); //对左子表快排
QKsort(arr, pos + 1, high); //对右子表快排
}
}
/**
* 一趟快速排序算法
*
* @param arr 待排序数组
* @param low 数组开始下标
* @param
* @return
*/
public static int QKpass(int[] arr, int low, int high) {
int temp = arr[low]; //先把当前元素作为待排值(一趟排序实际上就是把它放到合适的位置)
while (low < high) {
while (low < high && arr[high] >= temp) //从右向左扫描,找到第一个小于temp的值
{
high--;
}
if (low < high) { //将此值放入下标为low的数组中
arr[low] = arr[high];
low++;
}
while (low < high && arr[low] <= temp) //从左向右扫描找到第一个大于temp的值
{
low++;
}
if (low < high) {
arr[high] = arr[low]; //放在下标为high的数组中
high--;
}
}
arr[low] = temp; //将此元素放入其准确位置
return low; //返回此次排序完成的值当前下标(即此位置的元素已经排好)
}
public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
sc.close();
QKsort(arr, 0, arr.length - 1);
for (int x : arr) {
System.out.print(x + " ");
}
}
}
- Torch7搭建卷积神经网络详细教程
- 爬虫入门到精通-HTTP协议的讲解
- 批量替换文件名和文本文件内容mac
- 抓取手机app的数据(摩拜单车)
- Hadoop离线数据分析平台实战——520项目总结Hadoop离线数据分析平台实战——520项目总结
- 爬虫入门到精通-mongodb的基本使用
- 拒绝撕逼,用数据来告诉你选择器到底哪家强
- 爬虫入门到精通-headers的详细讲解(If-modified-since)
- Linux配置网卡
- 【爬虫军火库】生成指定日期间的日期列表
- 手把手教你安装大数据开发测试环境手把手教你安装大数据开发测试环境
- Humble Numbers(丑数) 超详解!
- 1284 2 3 5 7的倍数
- 爬虫入门到精通-爬虫之异步加载(实战花瓣网)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法