思路:

首先拿到数组第一个元素作为基数,然后遍历数组,比基数小的,放在左边,比基数大的,放在数组右边。
遍历一遍之后,再对数组左边和右边分别进行同样的快速排序

代码:

package com.xinyu.test;import java.util.Arrays;public class Test26 {public static void main(String[] args) {int []arr = new int[]{2,-1,4,18,1,3,6,-99};quickSort(arr,0,arr.length-1);System.out.println(Arrays.toString(arr));}/***** @param arr* @param start* @param end**** 快速排序思路:** 首先拿数组第一个位置的数,作为基点,比基点大的,直接略过*  比基数小的,那么交换位置,并且记住这个位置,因为在这个位置左边,都是比这个基数小的**  排序过一遍后,在对当前基数所在的位置的左边和右边分别进行再次的快速排序**/public static void quickSort(int [] arr, int start, int end){if (start >= end) {return;}//取cur 作为基数int cur = arr[start];//记录当前基数位置int position = start;//循环当前数组for (int i = start + 1; i <= end; i++){//如果当前数比基数小   那么交换位置if (arr[i] < cur) {arr[position] = arr[i];arr[i] = cur;//记录基数最新的位置position = i;}}//如果基数位置没有发生变化  那么就说明后面的数 都比第一个大  直接进行右边的排序就好if (position == start) {quickSort(arr,start + 1,end);}else {//如果基数位置发生了变化  那么再次按照同样的方法   对数组的左边  和 右边分别进行快排quickSort(arr,0,position);quickSort(arr,position,end);}}}

总结:

今天面试被问到快速排序的实现,当时第一感觉是实现不出来,面试结束后,我思考了半个小时,自己写出来了。记录一下。

Java 快速排序算法实现-----面试相关推荐

  1. JAVA快速排序算法实现

    JAVA快速排序算法实现 private static void quickSort(int[] arr, int start, int end) {if(start < end) {int b ...

  2. Java 快速排序算法

    简介 上一章我们学习了 Java 希尔排序算法,这一章,我们来学习快速排序算法,so,多了不说,继续老规矩,学习内容如下: 1.快速排序的定义 2.快速排序的思路 3.代码实现 1.快速排序的定义 快 ...

  3. java快速排序算法_JAVA版排序算法之快速排序示例

    本文实例讲述了JAVA快速排序实现方法.分享给大家供大家参考,具体如下: package com.ethan.sort.java; import java.util.Arrays; import ja ...

  4. java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  5. java 快速排序_面试必不可少的几大排序算法,你掌握了吗?

    从上学那一刻起,老师就说排序算法很重要,面试的时候考官常会问道,要我们认真的学习,出去工作的学长学姐也说这么说的,那么为了能在面试中取得好的印象,我们很有必要对算法进行了解,以便在面试中取得好的印象, ...

  6. java开发C语言编译器:把C实现的快速排序算法编译成jvm字节码

    有了前面一系列的铺垫和准备后,我们终于能走到至关重要的一刻.在本节,我们将用C语言开发快速排序算法,然后利用我们的编译器把它编译成java字节码,让C语言编写的快速排序算法能在java虚拟机上顺利执行 ...

  7. 快速排序算法(基于Java实现)

    title: 快速排序算法(基于Java实现) tags: 快速排序算法 快速排序算法的原理与代码实现: 一.快速排序算法的原理 快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们 ...

  8. java 概率 算法_使用概率算法优化快速排序(JAVA)

    前言 前面一篇文章系统介绍了快速排序算法,提到快速排序虽然平均时间复杂度为o(n*log2(n)),效率相对比较高.但是其在特殊情况下,比如降序的情况下,效率和冒泡排序一致,这就削弱了快速排序给人的好 ...

  9. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

最新文章

  1. 虚拟服务器能加内存吗,虚拟服务器可以加内存吗
  2. git cherry-pick用法
  3. How to Build Your Own Blockchain Part 4.1 — Bitcoin Proof of Work Difficulty Explained
  4. Flex 3调试Flash Player 10完美解决
  5. 关于Java中的随机数产生
  6. 给java程序员网址_程序员常用网址,必须收藏
  7. 常用技巧 —— 离散化
  8. sonyxz2刷机教程,日版au刷欧版
  9. 小米手机打开报告mimu查看程序调试错误locat
  10. Mybatis“四大神兽”
  11. javascriptji c z s
  12. 计算机通信中ip,macid的主要作用和区别
  13. Ubuntu 安装xbmc播放器
  14. Ethernet协议
  15. Crowd Counting by Adaptively Fusing Predictions from an Image Pyramid (BMVC2018)
  16. 思科ACS5.8最新搭建教程-亲测可用
  17. 邮箱日期IP地址信用卡验证(正则表达式)
  18. 名词解释第八讲:公钥
  19. Python用imghdr模块识别图片格式
  20. 汇编 第九章 转移指令的原理

热门文章

  1. c语言四则运算实验报告,c语言四则运算实验报告.doc
  2. python官网支持货到付款吗_官网购买的iPhone12pro还没发货?试着用Python快速入手...
  3. C++知识点21——使用C++标准库(再谈string——string的搜索和数值转化)
  4. 记录一下python手动安装第三方库
  5. linux 服务启动依赖,linux下的系统服务介绍——init、systemd
  6. Redis重新连接弹性
  7. Vue计算属性和监听属性
  8. 进程、线程与应用程序域
  9. JAVA学习--反射属性操作
  10. 升级IOS8游戏上传自定义头像功能失效的问题