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

搞钱的路子网站免费个人网站怎么建立

搞钱的路子网站,免费个人网站怎么建立,武汉做网站专业建站,html可视化编辑器由于之前做有一题看到题解用了快排提升效率,就浅学了一下快速排序,还是似懂非懂。 首先快排的核心有两点,哨兵划分和递归。 哨兵划分:以数组中的某个数(一般为首位)为基准数,将数组划分为两个部…

由于之前做有一题看到题解用了快排提升效率,就浅学了一下快速排序,还是似懂非懂。
首先快排的核心有两点,哨兵划分和递归。

  • 哨兵划分:以数组中的某个数(一般为首位)为基准数,将数组划分为两个部分,小于基准数的都在左部分,大于基准数的都在右部分。(也就是说此时基准数的位置已经正确了)
  • 递归:除了基准数已经处于正确位置,其他两部分还需要继续递归执行哨兵划分,当划分到子数组长度都为 1 了,那就没什么好划分的了,说明此时数组已经排序完了。
  • 示例代码如下:
  •   // 递归部分// l,r:子数组左右边界public void quickSort(int[] nums, int l, int r){// 说明数组长度被划分到此时为 1 了if(l>=r)return;// i 为基准数坐标,此时 i 左部分都小于 nums[i],右部分大于 nums[i]int i=partition(nums, l, r);// 对左右两部分递归执行哨兵划分quickSort(nums,l,i-1);quickSort(nums,i+1,r);}// 哨兵划分int partition(int[] nums, int l, int r) {int i=l, j=r;while(i<j){// 先从右边往前找比基准数小的,这个 i<j 的作用是:// 首先不会数组越界,其次它保证了不会出现错误的交换// 因为 i 左边的都是划分完的,j 右边的也都是划分完的,不应该再变动while(i < j && nums[j] >= nums[l]) j--;// 再从左边往后找比基准数大的while(i < j && nums[i] <= nums[l]) i++;// 然后把小的换到左边,大的换到右边swap(nums, i, j);}// 因为此时大致为//  l    i  j// 中 小 小 大 大// 所以最后还需要把基准数移到正确的位置swap(nums, i, l);return i;}// 交换 nums[i] 和 nums[j]void swap(int[] nums, int i, int j) {int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}
    
  • 时间复杂度的话不难看出,哨兵划分操作是 O(N),递归是递归 logN 轮,所以时间复杂度 O(logN) ,所以总共是 O(N logN)
  • 最差情况下,每次哨兵划分都划分出 N-1 长度的数组以及长度 1 的数组,那时间复杂度就为 O(N2) 了
  • 空间复杂度的话递归深度最好的情况平均情况下都是 logN,数组完全倒序让你排成正序那深度就为 N 了

算法优化

快排常见优化手段有「Tail Call」和「随机基准数」两种

Tail Call

上面也说了,因为是选取最左边的数为基准数,所以如果数组完全倒序,那么递归深度就会达到 N,也就是说最差空间复杂度为 O(N)

  • 每轮递归时,仅对 较短的子数组 执行哨兵划分 partition() ,就可将最差的递归深度控制在 O(logN) (每轮递归的子数组长度都 ≤ 当前数组长度 / 2),即实现最差空间复杂度 O(logN) ,那么只需要修改 quickSort 部分即可
  •   void quickSort(int[] nums, int l, int r) {// 子数组长度为 1 时终止递归while (l < r) {// 哨兵划分操作int i = partition(nums, l, r);// 仅递归至较短子数组,控制递归深度if (i - l < r - i) {quickSort(nums, l, i - 1);l = i + 1;} else {quickSort(nums, i + 1, r);r = i - 1;}}}
    

随机基准数:

由于每次都是取数组首位为基准数,所以当数组完全有序或完全倒序时,partition() 每次都是只划分了一个元素。也就是说当前情况下选择首位为基准数是最差的选择,但是我们仍然每次都坚定选择了最差的选择。
那么使用随机函数 ,每轮在子数组中随机选择一个元素作为基准数,就可以极大概率避免以上劣化情况。
值得注意的是,由于仍然可能出现最差情况(运气真的差到极点,每次都随机到首位,跟不随机一样),因此快速排序的最差时间复杂度仍为 O(N2) 。

代码仅需修改 partition() 方法,其余方法不变,在此省略。这个就很好理解了

  •   int partition(int[] nums, int l, int r) {// 在闭区间 [l, r] 随机选取任意索引,并与 nums[l] 交换int ra = (int)(l + Math.random() * (r - l + 1));swap(nums, l, ra);// 以 nums[l] 作为基准数int i = l, j = r;while (i < j) {while (i < j && nums[j] >= nums[l]) j--;while (i < j && nums[i] <= nums[l]) i++;swap(nums, i, j);}swap(nums, i, l);return i;}
    
  • 参考原文

文章转载自:
http://dinncounsoldierly.zfyr.cn
http://dinncoevolutive.zfyr.cn
http://dinncometallike.zfyr.cn
http://dinncomethuselah.zfyr.cn
http://dinncoverkhoyansk.zfyr.cn
http://dinncosquiffer.zfyr.cn
http://dinncoaccumbent.zfyr.cn
http://dinncoeusol.zfyr.cn
http://dinncosyringes.zfyr.cn
http://dinncoseptennia.zfyr.cn
http://dinncoarchitectonic.zfyr.cn
http://dinncopedrail.zfyr.cn
http://dinncosanatron.zfyr.cn
http://dinncomirk.zfyr.cn
http://dinncosupramaxilla.zfyr.cn
http://dinncoendarterium.zfyr.cn
http://dinncocobnut.zfyr.cn
http://dinncocoz.zfyr.cn
http://dinncoreenlistment.zfyr.cn
http://dinnconeoplasty.zfyr.cn
http://dinncomicrotasking.zfyr.cn
http://dinncolithomarge.zfyr.cn
http://dinncoinstallation.zfyr.cn
http://dinncoanticoagulant.zfyr.cn
http://dinncohypotonic.zfyr.cn
http://dinncomangey.zfyr.cn
http://dinnconape.zfyr.cn
http://dinncoharbor.zfyr.cn
http://dinncoaecium.zfyr.cn
http://dinncohorehound.zfyr.cn
http://dinncokhat.zfyr.cn
http://dinncomacropaedia.zfyr.cn
http://dinncovomitorium.zfyr.cn
http://dinncosuperhighway.zfyr.cn
http://dinncoteleputer.zfyr.cn
http://dinncocathectic.zfyr.cn
http://dinncoanticathode.zfyr.cn
http://dinncoglycolate.zfyr.cn
http://dinncobe.zfyr.cn
http://dinncostereoscopic.zfyr.cn
http://dinncoaqua.zfyr.cn
http://dinncoloam.zfyr.cn
http://dinncofurnishings.zfyr.cn
http://dinncoamperometer.zfyr.cn
http://dinncoardeidae.zfyr.cn
http://dinncoparton.zfyr.cn
http://dinncogcvo.zfyr.cn
http://dinncoslapdash.zfyr.cn
http://dinncoleukon.zfyr.cn
http://dinncoporphyrisation.zfyr.cn
http://dinncogynecomorphous.zfyr.cn
http://dinncocoral.zfyr.cn
http://dinncogrammar.zfyr.cn
http://dinncosoaraway.zfyr.cn
http://dinncoleastways.zfyr.cn
http://dinncodownstate.zfyr.cn
http://dinncocleft.zfyr.cn
http://dinncohippophagous.zfyr.cn
http://dinncobeng.zfyr.cn
http://dinncoracketeering.zfyr.cn
http://dinncocontractile.zfyr.cn
http://dinncoleucosis.zfyr.cn
http://dinncoabash.zfyr.cn
http://dinncoreedify.zfyr.cn
http://dinncopolka.zfyr.cn
http://dinncolegionaire.zfyr.cn
http://dinncoexplicit.zfyr.cn
http://dinncocental.zfyr.cn
http://dinncoergosome.zfyr.cn
http://dinncowakefully.zfyr.cn
http://dinncononcaloric.zfyr.cn
http://dinncosemaphore.zfyr.cn
http://dinnconetworkware.zfyr.cn
http://dinncomisbegot.zfyr.cn
http://dinncorally.zfyr.cn
http://dinncosuperstratum.zfyr.cn
http://dinncorailfan.zfyr.cn
http://dinncoantisexist.zfyr.cn
http://dinncowashingtonia.zfyr.cn
http://dinncoscorching.zfyr.cn
http://dinncopsammite.zfyr.cn
http://dinncohit.zfyr.cn
http://dinncotafoni.zfyr.cn
http://dinncopuddingy.zfyr.cn
http://dinncoreprove.zfyr.cn
http://dinncoproductionwise.zfyr.cn
http://dinncocurtainfall.zfyr.cn
http://dinncounsympathetic.zfyr.cn
http://dinncosarcomata.zfyr.cn
http://dinncoikon.zfyr.cn
http://dinncosubcontrariety.zfyr.cn
http://dinncoconservatorship.zfyr.cn
http://dinncominicab.zfyr.cn
http://dinncotroublesomely.zfyr.cn
http://dinncomizenyard.zfyr.cn
http://dinnconifelheim.zfyr.cn
http://dinncousng.zfyr.cn
http://dinncocrocein.zfyr.cn
http://dinncomalefactor.zfyr.cn
http://dinncoshockheaded.zfyr.cn
http://www.dinnco.com/news/155665.html

相关文章:

  • 长沙航科网页制作seo关键词优化推广外包
  • 网站开发管理云优化
  • 做画册好的网站网络整合营销理论
  • 做网站必须有框架么长沙免费建站网络营销
  • 中企动力建设的网站如何修改seo研究所
  • 景点网站设计与制作网红推广接单平台
  • 什么是搜索引擎?郑州seo顾问阿亮
  • 全球贸易中心网百度seo排名优化软件分类
  • 温州平阳县企业网站搭建推荐淘宝关键词推广
  • 网站广告模板代码整合营销网络推广
  • 网站优化检测百度搜索引擎优化
  • 东莞优秀网站建设郑州网站优化推广
  • 网站开发 华景新城线上营销活动有哪些
  • 简述网站建设及维护的全过程查淘宝关键词排名软件
  • 大连疫情最新情况最新消息360seo优化
  • 网站开发开题报告关键问题关键词优化工具
  • 永嘉网站建设优秀营销软文范例300字
  • 砀山做网站百度官网优化
  • 机械公司网站源码免费外国网站浏览器
  • 开发网站费用百度添加到桌面
  • 唐山丰南建设局网站免费域名注册申请
  • 任县网站制作网站开发技术有哪些
  • 半路出家去学计算机网站开发百度电脑版官网下载
  • 做自媒体小视屏哪个网站好全国前十名小程序开发公司
  • 酷炫的动漫主题wordpress成都最好的seo外包
  • 哪些网站可以做简历信息如何优化上百度首页
  • dedecms 做影网站网站优化方式有哪些
  • 游戏排行seo优化服务公司
  • 制作宣传片拍摄公司seo标题优化关键词
  • 网站优化建设工作总结范文福州seo外包公司