快速排序法 Java实现
快速排序法又叫二分法排序:
import java.util.Random;public class Quicksort {public static void main(String[] args) {// TODO Auto-generated method stubint[] arr =new int[100];Random rand=new Random();for (int i = 0; i < arr.length; i++) {arr[i]=rand.nextInt(500); //定义 [0,500)之内的随机数 }quickSort(arr, 0, arr.length-1);for(int i = 0;i<arr.length;i++){if (i==0) {System.out.print("快速排序 圣墟: [ "+arr[i]+",");}else if (i==arr.length-1) {System.out.print(arr[i]+" ]");System.out.println();}else {System.out.print(arr[i]+",");}}}public static void quickSort(int[] arr,int low,int high){int i,j,temp,t;if(low>high){return;}i=low;j=high;//temp就是基准位temp = arr[low];while (i<j) {//先看右边,依次往左递减while (temp>=arr[j]&&i<j) {j--;}//再看左边,依次往右递增while (temp<=arr[i]&&i<j) {i++;}//如果满足条件则交换if (i<j) {t = arr[j];arr[j] = arr[i];arr[i] = t;}}//最后将基准为与i和j相等位置的数字交换arr[low] = arr[i];arr[i] = temp;//递归调用左半数组quickSort(arr, low, j-1);//递归调用右半数组quickSort(arr, j+1, high);}
}
快速排序法 Java实现相关推荐
- java 数据结构与算法 ——快速排序法
快速排序法: 顾名思议,快速排序法是实践中的一种快速的排序算法,在c++或对java基本类型的排序中特别有用.它的平均运行时间是0(N log N).该算法之所以特别快,主要是由于非常精练和高度优化的 ...
- Java 实现快速排序法对数组进行排序
快速排序是对冒泡排序的一种改进,其排序速度相对较快. 基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按照这个方法对这两部分数据分别 ...
- 【重温基础算法】内部排序之快速排序法
内部排序之快速排序法 文章目录 内部排序之快速排序法 主要思想 过程演示 JAVA代码 算法分析 时间复杂度分析 最好时间复杂度 最坏时间复杂度 平均时间复杂度 空间复杂度 对冒泡排序的一种优化 主要 ...
- 经典算法之快速排序法(附B站最细讲解视频)
活动地址:21天学习挑战赛 文章目录 一.算法 1.算法概述 2.算法步骤 3.算法特点 二.算法实践 1.Java代码 2.执行结果 3.讲解视频 三.复杂度分析 1.时间复杂度 2.空间复杂度 一 ...
- 快速排序之Java实现
快速排序之Java实现 代码: 1 package cn.com.zfc.lesson21.sort; 2 3 /** 4 * 5 * @title QuickSort 6 * @describe 快 ...
- 1.16 快速排序法(Quicksort)
快速排序(Quicksort)是对冒泡排序的一种改进,是一种排序执行效率很高的排序算法. 快速排序的基本思想是:通过一趟排序,将要排序的数据分隔成独立的两部分,其中一部分的所有数据比另外一部分的所有数 ...
- 探索初级算法学习笔记-快速排序法
快速排序法学习笔记 #include<stdio.h>void swap(int *a,int *b) {int t;t=*a;*a=*b;*b=t; }void quickSort(in ...
- 快速排序算法 java 实现
快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...
- php四种基础算法:冒泡,选择,插入和快速排序法
许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
最新文章
- Attention跟一维卷积有什么区别?
- Leangoo看板工具可以很好的管理我们的销售
- 交互式讲解傅里叶变换
- tensorflow 无法执行sess =tf .session ()_深度学习|费解的tensorflow
- Linux系统软件信息内核,系统,目录,防火墙等
- ITK:提取矢量图像的分量/通道
- 文献记录(part88)--Robust clustering using a kNN mode seeking ensemble
- Qt工作笔记-QTreeWidget顺序查找包含内容的字符串
- mysql存储过程 等于_mysql存储过程字符串等于
- linux内核驱动之 用户空间和内核空间
- hive查询where join_Hive解析流程-抽象语法树生成
- 自定义session,cookie
- opencv之绘制带箭头的线段---arrowedLine
- [C#][SAMPLE][CODE][Control]RadioBox、CheckBox和Validating事件的相关处理
- 序列化和反序列化(七)——Java对象的网络传输(二)
- Linux驱动开发: USB驱动开发
- Python图像处理丨认识图像锐化和边缘提取的4个算子
- MPAndroidChart 3.0——BarChart(一)
- ORACLE 10g命令大全
- 爬虫问题小记 --- UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 25703: illegal