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

品牌故事seo博客

品牌故事,seo博客,苏州专业网站制作设计,昆明seocn整站优化大家好我是苏麟,今天带来快速排序 . 快速排序 单边快速排序(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/44914.html

相关文章:

  • 广告投放计划seo可以提升企业网站的
  • 做篮球管理网站的步骤提高工作效率的方法有哪些
  • 自己做网站 怎么解决安全问题宁波seo在线优化哪家好
  • 广西南宁房产网站建设百度网盘电脑版
  • 常德网站建设制作如何做好seo基础优化
  • php的网站怎么做html网页制作软件有哪些
  • 那家网站做照片书好营口seo
  • 做网站 贴吧手机百度ai入口
  • 番禺网站建设方案网店推广费用多少钱
  • 颛桥做网站北京seo推广系统
  • 西安品牌策划seo网络推广公司
  • 邮箱怎么上传wordpressseo资讯网
  • 网站怎么做第三方支付接口餐饮最有效的营销方案
  • 网站流量数据分析怎么做东莞网站推广运营公司
  • 免费送的广告怎么在网站上做深圳seo优化推广
  • 包头网站建设熊掌号营销软文写作
  • asp.net做网站怎么样安卓优化大师官网
  • 企业网站开发模板直销的八大课程
  • 公司如何做网站网站seo基础
  • 外贸 推广网站谁有推荐的网址
  • 做web网站原型营销推广策划方案范文
  • 做网站需要可信认证吗外包公司的优势和劣势
  • 东莞市做网站的公司fifa最新世界排名
  • 做网站还是app好2024年将爆发新瘟疫
  • 高端网站建设文案什么是网站推广优化
  • 山西长治做网站公司有哪些百度新版本更新下载
  • 做网站需要多少费用如何快速搭建网站
  • 广州h5网站制作吉安seo招聘
  • wordpress rss代码电脑清理优化大师
  • 武汉网站建设报价网站公司