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

成都网站建设培训班免费留电话的广告

成都网站建设培训班,免费留电话的广告,广告设计公司企业文化,延安网站开发大家好我是苏麟,今天带来快速排序 . 快速排序 单边快速排序(lomuto 洛穆托分区方案) 单边循环 (lomuto分区) 要点 : 选择最右侧元素作为基准点j 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换。 交换时机: 找到小的&#xff0c…

大家好我是苏麟,今天带来快速排序 .

快速排序

单边快速排序(lomuto 洛穆托分区方案)

单边循环 (lomuto分区) 要点 :

  • 选择最右侧元素作为基准点
  • j 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换。
  1. 交换时机: 找到小的,且与i不相等o
  2. i找到 >= 基准点元素后,不应自增
  • 最后基准点与i 交换,i 即为基准点最终索引

B站解析 :

基础算法-210-排序算法-单边快排_哔哩哔哩_bilibili

代码 :

class Solution {public int[] sortArray(int[] nums) {int length = nums.length;sort(nums,0,length - 1);return nums;}public void sort(int[] nums,int left,int right){if(left >= right){return;}int i =  qicke(nums,left,right);sort(nums,left,i - 1);sort(nums,i + 1,right);}public int qicke(int[] nums,int left,int right){int i = left;int j = left;int p = nums[right];while(j < right){if(nums[j] < p){if(i != j){swap(nums,i,j);}i++;}j++;}swap(nums,i,right);return i;   }public void swap(int[]nums,int i,int j){int temp = nums[i];nums[i]=nums[j];nums[j]=temp;}
}

双边快速排序

双边循环要点 :

  • 选择最左侧元素作为基准点 
  • 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换
  1. i从左向右
  2. j从右向左
  • 最后基准点与i 交换,i 即为基准点最终索引

B站解析 :

基础算法-211-排序算法-双边快排_哔哩哔哩_bilibili

解析 : 

class Solution {public int[] sortArray(int[] nums) {int length = nums.length;sort(nums,0,length - 1);return nums;}public void sort(int[] nums,int left,int right){if(left >= right){return;}int i =  qicke(nums,left,right);sort(nums,left,i - 1);sort(nums,i + 1,right);}public int qicke(int[] nums,int left,int right){int i = left;int j = right;int p = nums[left];while(i < j){while(i < j && nums[j] > p){j--;}while(i < j && nums[i] <= p){i++;}swap(nums,i,j);}swap(nums,i,left);return i;   }public void swap(int[]nums,int i,int j){int temp = nums[i];nums[i]=nums[j];nums[j]=temp;}
}

小题一道

这道题是一个数组排序题目 , 没有指定什么排序 , 但是为了更好的学习快速排序 ,请大家用快速排序做这道题 , 但是有一个Bug 有的块排会超时间限制  , 请大家自己思考用什么样的快排 .

题目 :

LeetCode : 912 排序数组

912. 排序数组

分析 :

根据上面写出快排 

解析 :

class Solution {public int[] sortArray(int[] nums) {int length = nums.length;quickSort(nums,0,length - 1);return nums;}public void quickSort(int[] array,int start,int end){if (start >= end) {return; } int left = start, right = end; int pivot = array[(start + end) / 2];while (left <= right) {while (left <= right && array[left] < pivot){left++;}while (left <= right && array[right] > pivot){ right--; }if (left <= right){ int temp = array[left]; array[left] = array[right]; array[right] = temp; left++;right--; }}          quickSort(array, start, right); quickSort(array, left, end);} 
}

这期就到这里 , 下期见!

http://www.hrbkazy.com/news/10972.html

相关文章:

  • 白熊阅读做网站架构百度竞价推广方法
  • 老区建设促进会网站如何做百度搜索推广
  • 大前端Wordpress图片主题top优化师培训
  • 展览公司网站模板今日头条新闻发布
  • 内蒙古工程建设协会官方网站外贸营销型网站设计
  • 打开一个网站为繁体字是怎么做的地推团队
  • 织梦做网站首页百度快速收录权限
  • 万能网站浏览器知乎推广公司
  • shtml怎么做网站免费网站搭建平台
  • 河源网站推广南宁 百度网盘
  • 乌鲁木齐网站备案培训体系搭建
  • 请被人做网站网页制作软件哪个好
  • 五八同城网站开发了多久网络营销模式案例
  • 0基础如何快速做网站西安seo推广优化
  • 经营地址怎么在国税网站做更改培训心得模板
  • jsp做网站开发一个具体网站的seo优化方案
  • 怎么做网站关键字好的seo平台
  • wordpress怎么挣钱seo搜索优化 指数
  • 网站表格边框怎么做百度推销广告一年多少钱
  • 关岭做网站深圳seo优化排名推广
  • 买了一台配置强悍的电脑怎么做网站服务器搜索营销
  • 代运营一个月多少钱网络优化有前途吗
  • 贵阳网站设计多少钱seo交流qq群
  • 十大进销存管理软件seo必备工具
  • 网站设置手机版朝阳区seo技术
  • 石家庄网站制作找谁北京网络营销公司哪家好
  • 著名建站公司长岭网站优化公司
  • 八步网站建设友情链接是外链吗
  • 沭阳网站建设招聘创意营销新点子
  • 重庆网站关键词优化推广服务营销策略