当前位置: 首页 > news >正文

台州网站建设公司.广州网站设计专注乐云seo

台州网站建设公司.,广州网站设计专注乐云seo,搭建网购平台,餐饮客户管理系统一、快速排序描述 每一轮排序选择一个基准点(pivot)进行分区 1.1. 让小于基准点的元素的进入一个分区,大于基准点的元素的进入另一个分区 1.2. 当分区完成时,基准点元素的位置就是其最终位置在子分区内重复以上过程,直…

一、快速排序描述

  1. 每一轮排序选择一个基准点(pivot)进行分区
    1.1. 让小于基准点的元素的进入一个分区,大于基准点的元素的进入另一个分区
    1.2. 当分区完成时,基准点元素的位置就是其最终位置
  2. 在子分区内重复以上过程,直至子分区元素个数少于等于 1,这体现的是分而治之的思想 (divide-and-conquer)
  3. 从以上描述可以看出,一个关键在于分区算法,常见的有洛穆托分区方案、双边循环分区方案、霍尔分区方案。

二、单边循环快排(lomuto 洛穆托分区方案)

  1. 选择最右元素作为基准点元素
  2. j 指针负责找到比基准点小的元素,一旦找到则与 i 进行交换
  3. i 指针维护小于基准点元素的边界,也是每次交换的目标索引
  4. 最后基准点与 i 交换,i 即为分区位置
public static void quick(int[] a, int l, int h) {if (l >= h) {return;}// p 索引值int p = partition(a, l, h); // 左边分区的范围确定quick(a, l, p - 1); // 右边分区的范围确定quick(a, p + 1, h); 
}private static int partition(int[] a, int l, int h) {// 基准点元素int pv = a[h]; int i = l;for (int j = l; j < h; j++) {if (a[j] < pv) {if (i != j) {swap(a, i, j);}i++;}}if (i != h) {swap(a, h, i);}System.out.println(Arrays.toString(a) + " i=" + i);// 返回值代表了基准点元素所在的正确索引,用它确定下一轮分区的边界return i;
}

三、双边循环快排(不完全等价于 hoare 霍尔分区方案)

  1. 选择最左元素作为基准点元素
  2. j 指针负责从右向左找比基准点小的元素,i 指针负责从左向右找比基准点大的元素,一旦找到二者交换,直至 i,j 相交
  3. 最后基准点与 i(此时 i 与 j 相等)交换,i 即为分区位置

要点:
1、基准点在左边,并且要先 j 后 i
2、while( i < j && a[j] > pv ) j–
3、while ( i < j && a[i] <= pv ) i++

private static void quick(int[] a, int l, int h) {if (l >= h) {return;}int p = partition(a, l, h);quick(a, l, p - 1);quick(a, p + 1, h);
}private static int partition(int[] a, int l, int h) {int pv = a[l];int i = l;int j = h;while (i < j) {// j 从右找小的while (i < j && a[j] > pv) {j--;}// i 从左找大的while (i < j && a[i] <= pv) {i++;}swap(a, i, j);}swap(a, l, j);System.out.println(Arrays.toString(a) + " j=" + j);return j;
}

四、快排特点

  1. 平均时间复杂度是 O(nlog2⁡n)O(nlog_2⁡n )O(nlog2n),最坏时间复杂度 O(n2)O(n^2)O(n2)
  2. 数据量较大时,优势非常明显
  3. 属于不稳定排序
http://www.ds6.com.cn/news/51325.html

相关文章:

  • 怎样做集装箱网站四川省人民政府官网
  • 推荐几个好看的网站域名注册查询官网
  • 网站建设视频教程百度荤seo公司
  • 做移动端网站乐山网站seo
  • 开发公司安全生产管理制度免费seo教程分享
  • 浙江省建设信息港网站个人模板建站
  • 继续加强网站建设大侠seo外链自动群发工具
  • 建设网络强国征文seo手机排名软件
  • 做网站数据库要哪一种好线上营销方式
  • 搭建平台网站seo专业术语
  • 网站推广连接怎么做的大数据营销是什么
  • 手机版网站开发的功能点农村电商平台
  • 如何优化wordpress网站百度网址提交入口平台
  • 创业做网站还是软件好营销网站建设哪家好
  • dedecms新网站 上传到万网的空间泰安网站推广优化
  • 阿里备案成功后怎么做网站武汉今日头条最新消息
  • wordpress 知识 管理梅花seo 快速排名软件
  • 有没有可以做翻译的网站企业网站设计方案
  • 网站做推广企业游戏推广员判几年
  • 我市强化属地网站建设建设网站制作
  • onethink做的企业网站长沙百度提升排名
  • 邹城有做网站的吗开发一个app需要多少钱?
  • 广州做网站建设刘雯每日资讯
  • 有做美食的视频网站么我为什么不建议年轻人做运营
  • 昆山做网站的jofunsseo外贸网站制作
  • 网站建设开票规格明细单位怎么写广告策划方案范文
  • 直播网站制作网站怎么收录
  • wordpress 文章 表格站长seo
  • 哪里有做网站开发网络培训心得
  • 汽车商城网站模板免费下载北京疫情最新情况