算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。

package sorting;/*** 快速排序* 平均O(nlogn),最好O(nlogn),最坏O(n^2);空间复杂度O(nlogn);不稳定;较复杂* @author zeng**/
public class QuickSort {public static void sort(int[] a, int low, int high) {if(low>=high)return;int i = low;int j = high;int key = a[i];while (i < j) {while (i < j && a[j] >= key)j--;a[i++] = a[j];while (i < j && a[i] <= key)i++;a[j--] = a[i];}a[i] = key;sort(a,low,i-1);sort(a,i+1,high);}public static void quickSort(int[] a) {sort(a, 0, a.length-1);for(int i:a)System.out.print(i+" ");}public static void main(String[] args) {int[] a = { 49, 38, 65, 97, 76, 13, 27, 50 };quickSort(a);}
}

  

转载于:https://www.cnblogs.com/zengzhihua/p/4456737.html

排序算法Java实现(快速排序)相关推荐

  1. 数据结构(七)高级排序算法——归并、快速排序

    一.归并排序 1.排序原理 归并排序算法是一种利用了分治算法思想实现的排序算法,这种排序算法是基于有序数组合并的归并排序算法的基本思想就是:判断一个待排序序列的长度,只要这个待排序序列的长度是超过1的 ...

  2. 排序算法java源代码_排序算法汇总(java实现,附源代码)

    整理系统的时候发现了原来写的各种算法的总结,看了一下,大吃一惊,那时候的我还如此用心,具体的算法,有的已经模糊甚至忘记了,看的时候就把内容整理出来,顺便在熟悉一下,以后需要的时候就可以直接过来摘抄了. ...

  3. js排序算法详解-快速排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-快速排序 既然是快速排序,那顾名思义一定很快,快的连小编都被懵逼了好几圈!建议先不要看动图,先看第一种写法: ...

  4. 排序算法python实现_合并排序算法– Java,C和Python实现

    排序算法python实现 Merge sort is one of the most efficient sorting algorithms. It works on the principle o ...

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

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

  6. java随机数排序算法_理解快速排序算法

    快速排序在平均状况下,排序n个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n^2)次比较,但这种状况并不常见.事实上,快速排序通常明显比 其他Ο(n log n)算法更快,因为它的内部循环 ...

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

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

  8. 九大排序算法Java实现

    之前学习数据结构与算法时花了三天时间整理九大排序算法,并采用Java语言来实现,今天第一次写博客,刚好可以把这些东西从总结的文档中拿出来与大家分享一下,同时作为自己以后的备忘录. 1.排序算法时间复杂 ...

  9. java基础排序_Java排序算法-Java入门|Java基础课程

    1. 课程目标排序是任何语言都会使用到的功能之一,然成果排序的算法有很多,对空间的要求及其时间效率也不尽相同. 本文章以Java语言示例,通过对空间要求.时间效率要求,来对比各种排序算法的使用场景 2 ...

  10. 八大排序算法Java

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

最新文章

  1. 浅谈OFBiz之权限设计
  2. Red Hat Enterprise Linux 5---system-config-*管理工具
  3. 股票实时行情数据大全
  4. html 禁止缩放 ios10,完美解决ios10及以上Safari无法禁止缩放的问题
  5. 华为电视再传消息,海思正在研发相关芯片
  6. 一个程序员年近四十岁的一些胡思乱想
  7. 客户端 获取服务器性能,客户端数量 服务器性能
  8. spring mvc学习(22):/textpath/*/helen
  9. 自动化测试 (四) 自动卸载软件
  10. 计算机硬盘存绝密,教您创建自己的绝密磁盘
  11. GNSS网平差之间接平差(C语言)
  12. 1688API接口:item_search_img - 按图搜索1688商品(拍立淘)
  13. 怎么搜索计算机共享盘,怎样查找其他计算机上的共享文件
  14. 第九届蓝桥杯稍小分数c语言,【第九届蓝桥杯大赛征文】蓝桥梦
  15. SequoiaDB巨杉数据库成为唯一入选 “硅谷2016 大数据地形图”中国厂商, 企业级市场超越MongoDB等海外产品...
  16. 【训练题66:状压暴力 | 子集dp】Greater Integer, Better LCM | 2021牛客暑期多校训练营5
  17. fiddler4使用方法以及相关抓包分析
  18. 【Leetcode】1774. Closest Dessert Cost
  19. 腾讯和爱奇艺的竞品分析
  20. 前端开发规范:JavaScript 规范

热门文章

  1. 如何用纯 CSS 创作背景色块变换的按钮特效
  2. 使用redis分布式锁+lua脚本实现分布式定时任务控制demo
  3. shell自定义数组元素分隔符
  4. Android提升篇系列:Activity recreate(Activity 重新创建/自我恢复)机制(一)
  5. 2016软考网络规划设计师论文写作
  6. 导航视图栏左右键自定义
  7. JAVA中数据的读取与写入,不同类型数据的转换
  8. 黄刘生--数据结构--答案 2
  9. php把路由放在数据库,PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法
  10. postek二次开发_POSTEK二次开发接口