算法入门——快速排序
来源:互联网 发布:linux操作vasp计算 编辑:程序博客网 时间:2024/06/07 00:11
快速排序:每次选择一个基准数,本程序每次选择目标数组的最左边为基准数,可以实现每次固定基准数的位置,快速排序最差时间复杂度为O(N²),平均时间复杂度为O(NlogN)。
package test;import java.util.Arrays;public class 快速排序 {public static void main(String[] args) {int[] a = new int[]{6,1,2,8,9,3,4,5,10,7};quicksort(a,0,a.length-1);}private static void quicksort(int[] a, int left, int right) {//如果数组为空,或传入左右数值有误,退出;if(a == null || a.length == 0 || left >= right)return;int i = left,j = right;int pivot = a[left];System.out.println(pivot);while (i < j) { while (a[j] > pivot && i <= j)j--;while (a[i] < pivot && i <= j)i++;if (i < j) {int temp = a[i];a[i] = a[j];a[j] = temp;}System.out.println(Arrays.toString(a));}if (left < i - 1)quicksort(a, left, i - 1);if (i < right)quicksort(a, i+1, right);}}
输出结果:
6[5, 1, 2, 8, 9, 3, 4, 6, 10, 7][5, 1, 2, 6, 9, 3, 4, 8, 10, 7][5, 1, 2, 4, 9, 3, 6, 8, 10, 7][5, 1, 2, 4, 6, 3, 9, 8, 10, 7][5, 1, 2, 4, 3, 6, 9, 8, 10, 7][5, 1, 2, 4, 3, 6, 9, 8, 10, 7]5[3, 1, 2, 4, 5, 6, 9, 8, 10, 7][3, 1, 2, 4, 5, 6, 9, 8, 10, 7]3[2, 1, 3, 4, 5, 6, 9, 8, 10, 7][2, 1, 3, 4, 5, 6, 9, 8, 10, 7]2[1, 2, 3, 4, 5, 6, 9, 8, 10, 7][1, 2, 3, 4, 5, 6, 9, 8, 10, 7]9[1, 2, 3, 4, 5, 6, 7, 8, 10, 9][1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]7[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
备份原文链接:https://www.90skys.cn/archives/75
阅读全文
0 0
- 算法入门——快速排序
- 排序算法—快速排序
- 排序算法—快速排序
- 算法入门--快速排序1
- 算法入门之快速排序
- 【算法】——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法——快速排序
- 算法导论—快速排序
- 啊哈!算法—快速排序
- 排序算法-快速排序(入门)
- 排序算法———快速排序
- Docker部署基于Nodejs的Web应用-实战篇
- nfs搭建
- ffmpeg3.3新版本AVStream的封装流参数由codec替换codecpar(解码)
- redis配置详解说明
- 面向对象的知识点,为何面向对象设计?好处,三大特征
- 算法入门——快速排序
- Linux ARM交叉编译工具链制作过程
- 67.二进制加法
- 启动模式 和 任务栈
- Unity Shader学习笔记:标准光照模型
- 无法远程连接keycloak的解决办法
- 事件
- Android 打开相机和相册,适配(仅限单选照片)
- [caioj]1400: 【模版】差分约束系统1:区间