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

做购物网站流程充电网站建设方案

做购物网站流程,充电网站建设方案,设计公司职位,WordPress添加看板娘#x1f397;️ 主页#xff1a;小夜时雨 #x1f397;️专栏#xff1a;快速排序 #x1f397;️如何活着#xff0c;是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码️ 主页小夜时雨 ️专栏快速排序 ️如何活着是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码建议先看一下这道题颜色分类 https://leetcode.cn/problems/sort-colors/description/ 快速排序的核心代码区间就是数组分三块, 所以还是十分重要的, 接下来我们再来分析一下分块这个过程 i 作为基准 key , 用三个变量分别标记, i 标记遍历原数组的位置, left 标记 0 区域的最右边位置, right 标记右边 2 区域最左边的位置.i 遍历数组, nums[i] key 时, 交换 left 1 和 i 位置的值, i;碰见 key 的, 直接 i;nums[i] key 时, 交换 right - 1 和 i 位置的值, 此时注意没有 i, 仍要进行判断 i 位置的值(详情看颜色分类这道题: https://leetcode.cn/problems/sort-colors/description/ 接下来我们来说一下快速排序的实现过程 快速排序具体实现过程 首先我们先确定一个 key作为基准进行比较.三个变量进行标记, 分别是 i 标记原数组遍历的位置, left 标记 key 区域的最右边位置, right 标记 key 区域的最左边位置.i 遍历原数组, nums[i] key 时, 交换 left 1 和 i 位置的值, 之后 i, left;nums[i] key 时, i, 不做任何交换nums[i] key 时, 交换 right - 1 和 i 位置的值, 之后 right - 1, 注意 i 不变这个之后把数组分成了三块, 中间一块都是等于 key 的不用处理, 之后递归处理左边区域和右边区域, 也都是同样的处理方式, 就是递归. (看后续的代码更容易理解). 看下面的分析图可能会更容易理解 关于 key 的选择, 我们用随机的方式选择基准元素最好, 分三块的思想当全部元素都一样的时候, 此时只需遍历一遍就可以排好数组了. 也就是说我们想让整体有序先把数组分为三块, 左边是小于 key 的区域, 中间是等于 key 的区域, 右边是大于 key 的区域. 这样是一个大致有序的数组了以左区间为例得先让左区间进行有序让左区间有序就得让左区间进行划分, 分成三块, 之后左边区间又逐渐有序了.就这样一直划分下去直到划分不了区间就是有序了, 那么这个时候左边区间就是已经排好序了, 右边区间同理.我们发现这个过程其实有点像是二叉树的前序遍历, 前让中间区域有序(类比是根节点), 之后再是左区间, 右区间有序.归并排序有点像是二叉树的后序遍历左右区间有序之后类比先遍历左右子树合并之后整体才会有序遍历根节点。 2. 代码 看下面的代码对照着上面的流程解析可能会更加的清楚。 // 快速排序public int[] sortArray3(int[] nums) {int n nums.length;// 传入下标qsort(nums, 0, n - 1);return nums;} /*** l r 表示下标 要排序的下标* * param nums* param l* param r*/private void qsort(int[] nums, int l, int r) {// 循环终止条件if(l r) return;// 数组分三块, 不是从 0 开始 因为要划分好多次// left 表示小于 key 的最右侧 right 表示大于 key 的最左侧int left l - 1, right r 1, i l;// 随机生成 key, 注意这个位置 nextInt(r - l 1) l 别忘了加 lint key nums[new Random().nextInt(r - l 1) l];// 数组分三块 核心代码while(i right) {if(nums[i] key) swap(nums, i, left);else if (nums[i] key) i;else swap(nums, i, --right);}// 分完之后 再分左侧的和右侧的qsort(nums, l, left);qsort(nums, right, r);}private void swap(int[] nums, int i, int j) {int temp nums[i];nums[i] nums[j];nums[j] temp;} 归并排序: https://blog.csdn.net/Jin__Wang/article/details/139811604 ️️️ 好啦到这里有关本题的分享就没了如果感觉做的还不错的话可以点个赞关注一下你的支持就是我继续下去的动力我们下期再见拜了个拜~ ☆*: .. o(≧▽≦)o ..:*☆
http://www.hkea.cn/news/14432111/

相关文章:

  • 襄阳电商网站建设福建省建设工程信息网
  • 购物商城外贸网站建设网站建设全攻略
  • 小米手机做网站服务器吗关于建设网站的图片素材
  • 长沙做最好网站网站防采集 如何采集
  • 中国建设银行内部网站建筑模板的价格一览表
  • 纺织网站建设网页布局实训心得体会
  • 优秀品牌网站案例分析网站平台开发报价表怎么做
  • cdr里做网站超级链接网站代码关键词标题
  • 山东网站seo石家庄网站建设就找企行家
  • 2008系统做网站百度排行榜前十名
  • 网站建设的基本特点上海建筑网站
  • 建设工程监理网站住房城市建设网站
  • 摄影网站的模板免费平台推广
  • 佛山网站建设公司哪家最好适合设计制作公司的网站asp远吗
  • 安康做网站公司开发 网站 沈阳
  • 做网站链接怎么做可以做分析图的地图网站
  • 网站推广易网宣河南建设厅网站地址
  • 常见的网站推广方法有哪些石家庄开发网站
  • 合肥城建wordpress手动数据库优化
  • 山东企业站点seowordpress essential
  • 网站里的内容都是什么作用视觉网站建设
  • 团购网站开发代码找人设计logo多少钱
  • 建设四川网站.cc后缀网站
  • 网加思维做网站推广做垂直网站
  • 做国外购物网站他达拉非
  • 做网站建设哪家公司好android网站客户端开发
  • 京东网站建设流程北京装饰公司十强
  • php建设网站怎么用婚庆网站建设必要性
  • 哈尔滨免费模板建站深圳做自适应网站公司
  • 网站访问速度慢的原因新手学做网站pdf