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

抚顺建设银行网站wordpress 授权插件

抚顺建设银行网站,wordpress 授权插件,网站维护意义,网页制作软件电脑版快速排序,顾名思义,快速排序是一种速度非常快的一种排序算法 平均时间复杂度为O(),最坏时间复杂度为O()数据量较大时,优势非常明显属于不稳定排序 1.算法描述 每一轮排序选择一个基准点(pivot)进行分区 让小于基准点…

        快速排序,顾名思义,快速排序是一种速度非常快的一种排序算法

  • 平均时间复杂度为O(nlog_{2}n),最坏时间复杂度为O(n^{^{2}})
  • 数据量较大时,优势非常明显
  • 属于不稳定排序

1.算法描述

  1. 每一轮排序选择一个基准点(pivot)进行分区

    1. 让小于基准点的元素的进入一个分区,大于基准点的元素的进入另一个分区

    2. 当分区完成时,基准点元素的位置就是其最终位置

  2. 在子分区内重复以上过程,直至子分区元素个数少于等于 1,这体现的是分而治之的思想 (divide-and-conquer)

  3. 从以上描述可以看出,一个关键在于分区算法,常见的有洛穆托分区方案、双边循环分区方案、霍尔分区方案

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

  1. 选择最右元素作为基准点元素

  2. j 指针负责找到比基准点小的元素,一旦找到则与 i 进行交换

  3. i 指针维护小于基准点元素的边界,也是每次交换的目标索引

  4. 最后基准点与 i 交换,i 即为分区位置

代码实现

    public static void main(String[] args) {int[] a = {5, 3, 7, 2, 9, 8, 1, 4};System.out.println(Arrays.toString(a));quick(a, 0, a.length - 1);}public static void quick(int[] a, int l, int h) {if (l >= h) {return;}int p = partition(a, l, h); // p 索引值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;}

3.双边循环快排(不完全等价于 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++

代码实现

    public static void main(String[] args) {int[] a = {5, 3, 7, 2, 9, 8, 1, 4};System.out.println(Arrays.toString(a));quick(a, 0, a.length - 1);}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;}

http://www.yayakq.cn/news/533072/

相关文章:

  • 徐州市鼓楼区建设局网站培训网站制作
  • 织梦网做网站过程公司注册地址异常
  • 网站开发与管理实验五网站源代码怎么生成网页
  • 泊头哪给做网站的好公司做网站需要什么内容
  • 网站平台推广方法建设银行北京分行网站
  • 免费域名网站黄的免费营销软件加盟
  • wps可以做网站吗婚纱摄影图片
  • 外贸网站销售方式如何自己做淘宝网站
  • 网站开发公司方案一个人可以做网站
  • 海尔网站建设水平心悦俱乐部官方网站怎么做任务
  • 免费做网站的平台企业网络规划和设计方案
  • 如何做网站搬运工赚钱wordpress文章页
  • 徐州网站建设制作工作室千享科技网站建设
  • 网站建设需要多少技术怎么写网站建设的说明书
  • 西部数码网站管理助手 2008国内网站建设哪家好
  • 软装设计网站排名网站开发后端框架什么意思
  • 企业网站免费建站一个简单的登录界面网页代码
  • 公众号授权网站个人网页制作方案
  • 专做网站建设母婴网站的目的
  • 网站建设温州常州网站设计平台
  • 企业网站推广可以选择哪些方法?公司部门英语
  • 重庆响应式网站大一网页设计基础知识
  • 国际知名平面设计网站深圳市住房和建设局网上办事大厅
  • 网站建设优化哪家好wordpress插件水印
  • 教务系统门户网站南京有关制作网站的公司
  • 公司成立后网站建设门禁考勤网站建设
  • 网站空间多大合适seo如何优化网站步骤
  • 湖北网站排名优化台州关键词优化平台
  • 物流网站建设平台分析百度录取线我的wordpress
  • 如何销售网站开发能够做一镜到底的网站