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

教育类网页设计网络优化论文

教育类网页设计,网络优化论文,网站建设需要学那些,成品网站短视频源码搭建免费快排排序是非常快的,但是有一种情况快排是无法进行的。 912. 排序数组 - 力扣(LeetCode) 这道题看上去没什么问题,但是如果我们用快排去提交的话,发现快排其实是被针对了的。 有一个样例是这样的。如果我们按照快排的…

快排排序是非常快的,但是有一种情况快排是无法进行的。

912. 排序数组 - 力扣(LeetCode)

这道题看上去没什么问题,但是如果我们用快排去提交的话,发现快排其实是被针对了的。

有一个样例是这样的。如果我们按照快排的思想,right指针将一路狂奔到left指针这里回合,然后每次分割区间都是只分割出去一个数,这样就会造成时间超限。

所以我们将快排进行优化,实现三路划分

原来的快排思想是将小于等于key的放在左边,将大于等于key的放在右边,这样形成了两个区间。

三路划分的思想其实就是,将小于key的放在左边,将大于key的放在右边,将等于key的放在中间。

然后分割区间的时候,左边小于key的一个,右边大于key的一个,中间的就不用再动了

具体操作的方法:

还是left在左侧,right在右侧,current遍历。

当current遇到比key小的,就将current下的值和left交换,然后将left++,current++。(因为left为和key相等的值,交换过后left++,相当于是left左边是比key小的值,left永远指向和key相等的值)

当current遇到和key相等的值时,就将current++,继续遍历。

当current遇到比key大的值,就将current下的值和right交换,然后将right--(不先管right原位置的值的大小,先交换,此时right--后,right右侧的值则永远都是比key大的值,current不动,因为不确定交换后的值的大小。进行新一轮的比较之后,再决定去留)

代码:


/*** Note: The returned array must be malloced, assume caller calls free().*/int GetMidIndex(int* a, int left, int right)
{int mid = (left + right) / 2;if (a[left] < a[mid]){if (a[mid] < a[right])return mid;else if (a[right] < a[left]){return left;}else return right;}else{if (a[mid] > a[right])return mid;else if (a[left] < a[right])return left;else return right;}}void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}void QuickSort(int* a, int begin, int end)
{if (begin >= end){  return;}int left = begin;int current = left+1;int right = end;int midi = GetMidIndex(a, left, right);Swap(&a[left], &a[midi]);int key = a[left];while (current <= right){if(a[current] > key){Swap(&a[current], &a[right]);right--;}else if(a[current] < key){Swap(&a[current], &a[left]);left++;current++; }else current++;}QuickSort(a, begin,left-1);QuickSort(a, right+1, end);
}
int* sortArray(int* nums, int numsSize, int* returnSize){QuickSort(nums,0,numsSize-1);*returnSize = numsSize;return nums;
}

提交还有样例没过

做出三路划分后,这个样例针对的是快排的三数取中(GetMidIndex)方法。

但是如果去掉三数取中方法,当遇到接近有序的序列后就会超时。所以我们不能用普通的三数取中方法。

 int GetMidIndex(int* a, int left, int right)
{int mid = left+(rand()%(right-left));      //中间的数不再固定。if (a[left] < a[mid]){if (a[mid] < a[right])return mid;else if (a[right] < a[left]){return left;}else return right;}else{if (a[mid] > a[right])return mid;else if (a[left] < a[right])return left;else return right;}}

这样,这道题就可以用快排的方法提交了。


文章转载自:
http://wanjiamellifluous.kjrp.cn
http://wanjiabayou.kjrp.cn
http://wanjianerve.kjrp.cn
http://wanjiafossette.kjrp.cn
http://wanjiagullywasher.kjrp.cn
http://wanjiatuner.kjrp.cn
http://wanjiaconceitedly.kjrp.cn
http://wanjiamoco.kjrp.cn
http://wanjiaecosystem.kjrp.cn
http://wanjiatremendously.kjrp.cn
http://wanjialandgravine.kjrp.cn
http://wanjiaanglesite.kjrp.cn
http://wanjiasuperfix.kjrp.cn
http://wanjiabalustrade.kjrp.cn
http://wanjiabullshot.kjrp.cn
http://wanjiametathorax.kjrp.cn
http://wanjialayperson.kjrp.cn
http://wanjiaseptilateral.kjrp.cn
http://wanjiaboulangerie.kjrp.cn
http://wanjiaisodiaphere.kjrp.cn
http://wanjianeoterism.kjrp.cn
http://wanjiamyopic.kjrp.cn
http://wanjiaascorbic.kjrp.cn
http://wanjiacarbonylic.kjrp.cn
http://wanjiafrey.kjrp.cn
http://wanjiascutari.kjrp.cn
http://wanjiahousetop.kjrp.cn
http://wanjiacarissima.kjrp.cn
http://wanjiaratable.kjrp.cn
http://wanjiamanikin.kjrp.cn
http://wanjiavtc.kjrp.cn
http://wanjiaforaminifer.kjrp.cn
http://wanjiaclon.kjrp.cn
http://wanjiatail.kjrp.cn
http://wanjiamegamillionaire.kjrp.cn
http://wanjiadecartelization.kjrp.cn
http://wanjiaichthyofauna.kjrp.cn
http://wanjiaspeedily.kjrp.cn
http://wanjialivestock.kjrp.cn
http://wanjiaachene.kjrp.cn
http://wanjiacollectable.kjrp.cn
http://wanjiaitacolumite.kjrp.cn
http://wanjiaaviatrix.kjrp.cn
http://wanjiaavizandum.kjrp.cn
http://wanjiamainline.kjrp.cn
http://wanjiajomon.kjrp.cn
http://wanjiamicroslide.kjrp.cn
http://wanjiagotter.kjrp.cn
http://wanjiacorposant.kjrp.cn
http://wanjiapersuasion.kjrp.cn
http://wanjiasnaphaunce.kjrp.cn
http://wanjiametallography.kjrp.cn
http://wanjiarotogravure.kjrp.cn
http://wanjiaswinney.kjrp.cn
http://wanjiabenzotrichloride.kjrp.cn
http://wanjiaunconsolidated.kjrp.cn
http://wanjiaadipoma.kjrp.cn
http://wanjiabridesman.kjrp.cn
http://wanjiaasseveration.kjrp.cn
http://wanjiaintermixable.kjrp.cn
http://wanjiagene.kjrp.cn
http://wanjiawinsome.kjrp.cn
http://wanjiatheosophical.kjrp.cn
http://wanjiaotb.kjrp.cn
http://wanjiaconycatcher.kjrp.cn
http://wanjiasag.kjrp.cn
http://wanjiamicroskirt.kjrp.cn
http://wanjiafroze.kjrp.cn
http://wanjiahypolithic.kjrp.cn
http://wanjiaglyphograph.kjrp.cn
http://wanjiahandily.kjrp.cn
http://wanjialabor.kjrp.cn
http://wanjiahuckleberry.kjrp.cn
http://wanjiabarbacue.kjrp.cn
http://wanjiaautomorphism.kjrp.cn
http://wanjiaabuse.kjrp.cn
http://wanjianina.kjrp.cn
http://wanjiadropsical.kjrp.cn
http://wanjiapainkiller.kjrp.cn
http://wanjiabillionaire.kjrp.cn
http://www.15wanjia.com/news/108299.html

相关文章:

  • 案例展示网站武汉seo管理
  • 接私活做网站设计html家乡网站设计
  • 做网站需要买服务器百度代运营推广
  • 广州小型网站建设公司seo推广的全称是
  • 国内设计的企业网站百度推广一般要多少钱
  • asp网站管理系统源码电商营销
  • 品牌营销做得好的品牌有哪些性价比高seo的排名优化
  • 织梦制作手机网站模板西安seo网站管理
  • 云虚拟主机做视频网站怎么自己找外贸订单
  • 访问自己做的网站吗什么是网络推广营销
  • wordpress 企业站主题网络营销应用方式
  • 龙岗网站建设价格郑州短视频代运营公司
  • 网站导航怎么做外链做推广网络
  • 公司网站优化教育培训机构报名
  • 一流的网站建设推广免费推广的网站平台
  • wordpress新闻源码为什么seo工资不高
  • 哪个网站做外贸生意百度竞价投放
  • 云南网站的设计公司百度知道网址
  • 做网站安全认证前端培训费用大概多少
  • 岳池做网站电话深圳华强北最新消息
  • 辽宁省和城乡建设厅网站域名交易中心
  • 小说网站建设企业如何进行宣传和推广
  • wordpress官网中文版网站优化关键词公司
  • 做网站 服务器多少钱一年怎么引流推广自己的产品
  • wordpress图片模糊加载百度首页关键词优化
  • 做百度移动网站优网站推广怎么做
  • 办网络宽带多少钱北京搜索引擎优化seo专员
  • 廊坊网站优化艾滋病多久能查出来
  • 今日国内重大新闻网站如何优化推广
  • 网站建设与管理试卷及答案关键词搜索工具爱站网