前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA实现常见排序算法 快速排序

JAVA实现常见排序算法 快速排序

作者头像
算法与编程之美
发布2019-07-17 17:45:42
8160
发布2019-07-17 17:45:42
举报
文章被收录于专栏:算法与编程之美

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

基本思想:用选取的初始值(一般是第一个)将待排序序列分为小于初始值和大于初始值的两部分,然后重复此操作,最终到排序完成。该算法是一个不稳定的算法(如果待排序序列中存在相同的元素,经过排序后他们的相对位置不发生改变那么这个算法就是稳定的排序算法)

空间复杂度最坏为O(n),平均

时间复杂度最坏为O(n2),最好为

Java实现:

public static int[] quickSort(int[] n, int low, int high) { int lowMark = low, highMark = high; int record; if (low < high) { //记录值 record = n[low]; while (lowMark != highMark) { //高位指针偏移 while (lowMark < highMark && n[highMark] >= record) { highMark--; } //交换元素 n[lowMark] = n[highMark]; //低位指针偏移 while (lowMark < highMark && n[lowMark] <= record) { lowMark++; } //交换元素 n[highMark] = n[lowMark]; } //将记录值写到最后低位指针的位置 n[lowMark] = record; //两边分别进行排序操作 quickSort(n, low, lowMark - 1); quickSort(n, lowMark + 1, high); } return n; }

where2go 团队


微信号:算法与编程之美

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档