网站首页 > java教程 正文
快速排序(Quick Sort)
简介:
快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
描述:
- 从数列中挑出一个元素,称为 “基准”;
- 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
- 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
Java代码
以下代码为方便复制
public static void main(String[] args) { int[] array = new int[]{0,53,63,38,71,25,22,11,95,38}; int[] sort = sort(array,0,array.length - 1); System.out.println(Arrays.toString(sort)); } public static int[] sort(int []array,int L,int R) { //代表左边的指针 int i = L; //代表有边的指针 int j = R; //基数 int bais = array[L]; //条件:左指针一定要小于等于右指针 while(i <= j){ //1、如果右边的指针指的数大于基数,则指针左移,直到找到比基数小的数的指针 while (array[j] > bais){ j--; } //2、如果左边的指针小于基数,则右移指针,直到找到比基数大的数的指针 while (array[i] < bais){ i++; } //3、如果左指针小于等于右指针,则左右指针指的数交换 if(i <= j){ int temp = array[i]; array[i] = array[j]; array[j] = temp; i++; j--; } } if(L < j){ sort(array,L,j); } if(R > i){ sort(array,i,R); } return array; }
- 上一篇: 面试时常见算法之快速排序Java版实现
- 下一篇: 八种经典排序算法总结,妈妈再也不用担心我不会了
猜你喜欢
- 2024-10-09 一遍记住 8 种排序算法与 Java 代码实现
- 2024-10-09 java程序员必知的八大排序(java编程排序算法实现)
- 2024-10-09 Java实现堆排序(java堆排序算法代码)
- 2024-10-09 插入排序算法,就这么简单,还学不会算我输
- 2024-10-09 程序员必知的十大基础实用算法之-快速排序算法
- 2024-10-09 【数据结构与算法】十大经典排序算法-快速排序
- 2024-10-09 经常用到的的排序(快速排序和归并排序)简单的计算机算法学习
- 2024-10-09 排序算法——快排(快速排序算法实例讲解)
- 2024-10-09 七种基于比较的排序,基于Java实现,收藏一下?
- 2024-10-09 十大经典排序算法动画与解析,看我就够了!(配代码完全版)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)