博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[数据结构和算法]快速排序笔记
阅读量:5925 次
发布时间:2019-06-19

本文共 1120 字,大约阅读时间需要 3 分钟。

特点:

1.是冒泡的改进
2.是一个递归的过程
3.不稳定

4.时间复杂度:O(nlogn)

 

设要排序的数组是A[0]...A[n-1],首先取数组的第一个数作为关键数据,

然后将所有比它小的数都放到它的前面,比他大的都放到他的后面,这个过程被称为一趟快速排序

 

算法步骤:

1.设置两个变量i,j,排序开始i = 0, j = N-1;
2.以第一个数组元素作为关键字,Key = A[0];
3.从J开始向前搜索,即由后开始向前搜索j--, 找到第一个小于key的值A[j],将A[j]赋值给A[i]
4.从I开始向后搜索,即由前开始向后搜搜i++, 找到第一个大于key的值A[i],将A[i]赋值给A[j]
5.重复3,4步,直到i=j;
(3,4步中,没有找到符合条件的值,即3中A[j]不小于key,4中A[i]不大与key的时候改变j,i的值,
使得j=j-1 , i = i +1,直至找到为止,找到符合条件的值,进行交换的时候i,j位置不变
i==j这一个过程一定正好是i+或者j-完成时候,此时令循环结束)

 

package src;public class QSort {    /**     * @param args     */    public static void main(String[] args)     {        // TODO 自动生成方法存根        quicksort qs = new quicksort();        int data[] = {44,22,2,32,54,22,88,77,99,11};        qs.data = data;        qs.sort(0, qs.data.length-1);        qs.display();    }}class quicksort{    public int data[];        private int partition(int sortArray[],int low,int hight)    {        int key = sortArray[low];                while(low
=key) hight--; sortArray[low] = sortArray[hight]; while(low

 

 

转载于:https://www.cnblogs.com/hellenism/p/3749670.html

你可能感兴趣的文章
MariaDB 10 (MySQL DB) 多主复制并实现读写分离
查看>>
【原创】 POSTGRESQL 与MYSQL 实现分割字符串的方法对比
查看>>
安装PHP组件,使 PHP5 支持 MySQL
查看>>
JPush极光推送的原理与简单demo的实现会遇到的问题
查看>>
MyBatis实现关联表查询(一对一,一对多)
查看>>
windows7安装oracle 10g安装过程及注意事项。
查看>>
SQLite: sqlite_master简介
查看>>
linux 下启动oracle数据库
查看>>
AndroidStudio 导入imageloader项目lib包,错误处理
查看>>
Android核心技术与实例详解(第2版)
查看>>
Hint View
查看>>
mysql图形管理工具
查看>>
怎么用API网关构建微服务
查看>>
开源 java CMS - FreeCMS2.8会员注册
查看>>
centos 配置php开发环境
查看>>
浏览器解析数据的乱码问题
查看>>
mysql的case when使用
查看>>
test
查看>>
repo用法
查看>>
Java 分布式-思考如果构建分布式系统架构
查看>>