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

類似wordpress博客系統真实的优化排名

類似wordpress博客系統,真实的优化排名,怎样建网站,网络管理专业1.前言 插入排序是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。实际中我们玩扑克牌时,就用了插入排序的思想。 本章重点:主要着重的介绍两种插入排序…

1.前言

插入排序是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。实际中我们玩扑克牌时,就用了插入排序的思想。

                    

本章重点:主要着重的介绍两种插入排序的方式--直接插入排序和希尔排序

2.直接插入排序

抓扑克牌思想:当抓了第一张的时候,因为手里没有牌,所以无需插入,直接放在手里。当抓第二张的时候,就要与手里最末尾的那张进行比较,判断大小,如果末尾大于抓上来的牌,那么就依次向前比较,直到找到第一个比刚抓上来的值小的数为止。

直接插入排序思想:借助了抓扑克牌思想的例子,直接插入排序是手里已经有一堆乱序的值,然后这些值需要用到抓扑克牌的思想来把它们进行排序。

void Insert(int * arr,int n)
{//1.先确定要比较多少次能够把这些数变成有序的,n-1次for(int i=0;i<n-1;i++){int end=i;int tmp=arr[end+1];while(end>=0){if(arr[end]>tmp){arr[end+1]=arr[end];end--;}else break;}arr[end+1]=tmp;}
}

把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。

演示动画如下:

直接插入排序特性总结:

1.当一串数越有序时,直接插入排序的效率越高

2.时间复杂度为:O(N)~O(N^2)

3.空间复杂度为:O(1)

4.稳定性:稳定

3.希尔排序

基本思路:

希尔排序是直接插入排序的优化版本:由于直接插入排序对顺序有序或接近有序的序列排序效率很高。所以希尔排序先通过多次分组预排序使序列接近有序,最后再进行直接插入排序≈O(N),以此来提高效率。
多次分组预排序:就是将序列进行间隔分组,对同一组内的元素进行直接插入排序,并不断缩小分组间距。

如何分组:
1.通过增量gap对序列进行分组控制,gap是组内元素之间的间距,同时也是组数。
2.gap初始化为n; 每次分组预排gap = gap/3+1;除3是进过多次试验得出的最佳缩小系数,加1是为了避免跳过最后一次直接插入排序。
直到gap==1进行最后一次直接插入排序使序列顺序有序。

示例如下:

代码如下:

以升序为例

void ShellSort(int *arr, int n){assert(arr != NULL);//写法一(便于理解):排完一组再排下一组int gap = n;while (gap > 1){//多次分组预排序,分组数量每次减少,直到1组排完。gap = gap / 3 + 1;//加1,防止跳过gap == 1//每次排序的起点for (int i = 0; i < gap; i++){//单组单组的进行排序--每组间隔gap//同直接插入排序。j < n - gap,保证最后一个待排记录不会越界。for (int j = i; j < n - gap; j+=gap){int end = j;int x = arr[end + gap];while (end >= i){if (x < arr[end]){arr[end + gap] = arr[end];end -= gap;}else{break;}}//找到插入位置后,end还会减一次,所以+gaparr[end + gap] = x;}}}//写法二(简洁):gap组数据交替插入排序int gap = n;while (gap > 1){gap = gap / 3 + 1;for (int i = 0; i < n - gap; i++){int end = i;int x = arr[end + gap];while (end >= 0){if (x < arr[end]){arr[end + gap] = arr[end];end -= gap;}else{break;}}arr[end + gap] = x;}}
}

动画演示如下:

希尔排序的时间复杂度分析:

        gap越大,预排越快,预排后越不接近有序。(大数字会很快移动到后面);gap越小,预排越慢,预排后越接近有序。开始时gap较大:组内元素数量较少,因此即便是最坏情况时间复杂度都大约为:O(N);

同时由于分组间隔较大,大数字会很快移动到数列后面,使数列逐渐接近有序;gap逐渐变小直到1:组内元素数量增多,但由于数列逐渐接近有序,因此时间复杂度也大约为:O(N)


分组预排序的时间复杂度:
最好:N/gap*gap —> O(N)(每组大约N/gap个元素)
最坏:(1+2+3+…+N/gap)*gap; (gap越大,越接近N最坏情况越接近O(N))


希尔排序的时间复杂度:
gap = gap/2;
理想情况下,大约为N*log2 N(进行lon2 N次预排,每次复杂度接近O(N))
gap = gap/3+1;
理想情况下,大约为N*log3 N
gap由大变小,开始时由于gap很大,时间复杂度都大约为O(N)。多次预排序使得数组越来越接近有序。虽然gap变小了,每次排序的复杂度也都大约为O(N)。

注意:O(nlogn)是理想情况下的复杂度,而实际上在足够大的输入规模下,它的运行时间将超过具有时间复杂度 nlogn 的算法。多次实验得出希尔排序的时间复杂度平均大约为O(N^1.3),做到了对直接插入排序的优化。

希尔排序的特性总结:

希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时是直接插入排序,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。
时间复杂度:O(N^1.3) (或NlogN) ~ O(N^2)(逆序)
空间复杂度:O(1)
稳定性:不稳定,相等的关键字可能会被划分到不同的组进行预排序
 


文章转载自:
http://dinncosherbet.ssfq.cn
http://dinncosian.ssfq.cn
http://dinncooryx.ssfq.cn
http://dinnconephrogenic.ssfq.cn
http://dinncocorrasion.ssfq.cn
http://dinncowrestler.ssfq.cn
http://dinncopeelite.ssfq.cn
http://dinncosmirky.ssfq.cn
http://dinncoswirl.ssfq.cn
http://dinncowapentake.ssfq.cn
http://dinncounderstudy.ssfq.cn
http://dinncoaffective.ssfq.cn
http://dinncoantilysin.ssfq.cn
http://dinncometabiosis.ssfq.cn
http://dinnconingpo.ssfq.cn
http://dinncoanuclear.ssfq.cn
http://dinncopretension.ssfq.cn
http://dinncocompulsory.ssfq.cn
http://dinncopukka.ssfq.cn
http://dinncoknightliness.ssfq.cn
http://dinncosuoloco.ssfq.cn
http://dinncobezzant.ssfq.cn
http://dinncodyspnea.ssfq.cn
http://dinncolavendery.ssfq.cn
http://dinncodareful.ssfq.cn
http://dinncocurrijong.ssfq.cn
http://dinncoauburn.ssfq.cn
http://dinncogayest.ssfq.cn
http://dinncogest.ssfq.cn
http://dinncounakite.ssfq.cn
http://dinncocroatian.ssfq.cn
http://dinncodiemaker.ssfq.cn
http://dinncoodorously.ssfq.cn
http://dinncoperishingly.ssfq.cn
http://dinncoremittent.ssfq.cn
http://dinncocumbrous.ssfq.cn
http://dinncotom.ssfq.cn
http://dinncoputrescible.ssfq.cn
http://dinncoenterable.ssfq.cn
http://dinncomasterwork.ssfq.cn
http://dinncotannadar.ssfq.cn
http://dinncotrichocarpous.ssfq.cn
http://dinncousmc.ssfq.cn
http://dinncoraincape.ssfq.cn
http://dinncovittoria.ssfq.cn
http://dinncosalut.ssfq.cn
http://dinncodebouchment.ssfq.cn
http://dinncoxenocryst.ssfq.cn
http://dinncodry.ssfq.cn
http://dinncoupwarp.ssfq.cn
http://dinncovoluntariness.ssfq.cn
http://dinncolog.ssfq.cn
http://dinncotuna.ssfq.cn
http://dinncosubscibe.ssfq.cn
http://dinncogdr.ssfq.cn
http://dinncocapibara.ssfq.cn
http://dinncoinsupportable.ssfq.cn
http://dinncogolan.ssfq.cn
http://dinncometeorogram.ssfq.cn
http://dinncobaruch.ssfq.cn
http://dinncojournalise.ssfq.cn
http://dinncogassed.ssfq.cn
http://dinncotriangular.ssfq.cn
http://dinncolampshade.ssfq.cn
http://dinncosecretiveness.ssfq.cn
http://dinncochromonema.ssfq.cn
http://dinncoleakiness.ssfq.cn
http://dinncoinoperative.ssfq.cn
http://dinncosaleslady.ssfq.cn
http://dinncomesnalty.ssfq.cn
http://dinncoinauthenticity.ssfq.cn
http://dinncodramatise.ssfq.cn
http://dinncooverblouse.ssfq.cn
http://dinncodollface.ssfq.cn
http://dinncosyphilologist.ssfq.cn
http://dinncostethoscopy.ssfq.cn
http://dinncowhitleyism.ssfq.cn
http://dinnconewyorican.ssfq.cn
http://dinncosnicket.ssfq.cn
http://dinncooutscorn.ssfq.cn
http://dinncozapateo.ssfq.cn
http://dinncolaryngismus.ssfq.cn
http://dinncosawyer.ssfq.cn
http://dinncohighroad.ssfq.cn
http://dinncoarid.ssfq.cn
http://dinncocephalometry.ssfq.cn
http://dinncodeckle.ssfq.cn
http://dinncoteleseme.ssfq.cn
http://dinncosackful.ssfq.cn
http://dinncogaijin.ssfq.cn
http://dinncodeurbanize.ssfq.cn
http://dinncoseattle.ssfq.cn
http://dinncojeunesse.ssfq.cn
http://dinncodiscursiveness.ssfq.cn
http://dinncotantivy.ssfq.cn
http://dinncotatar.ssfq.cn
http://dinncoresolutive.ssfq.cn
http://dinncoio.ssfq.cn
http://dinncounfoiled.ssfq.cn
http://dinncodispersoid.ssfq.cn
http://www.dinnco.com/news/75746.html

相关文章:

  • 网站建设报价清单内容成都百度推广
  • 保定市人民政府网站株洲网页设计
  • 云南城乡建设网站我们公司想做网络推广
  • 物价局网站建设情况汇报免费网站建设
  • 深圳网站设计建设郑州seo网站有优化
  • 网站建设如何添加咨询网页模板免费下载
  • 手机网站源程序百度在线问答
  • 合肥哪家公司做网站靠谱免费sem工具
  • 网站备案授权书范本自动点击器永久免费版
  • wordpress 爬虫嘉兴网站建设方案优化
  • 最便宜做网站的方法百度开放平台
  • 做网站公司哪家公司好百度大数据分析
  • 网站建设代理平台怎么做公司建网站流程
  • 建设银行投资网站首页seo综合优化公司
  • 村委会网站源码北京债务优化公司
  • html个人网站设计模板最佳的资源搜索引擎
  • 如果我的网站被百度收录了_以后如何做更新争取更多收录搜索引擎入口
  • 做母婴的网站有哪些友妙招链接
  • 分类信息网站做推广投广告哪个平台好
  • 上饶做网站公司北京百度网讯科技有限公司
  • 什么做的网站推广自助优化排名工具
  • 月嫂云商城网站建设网络营销策划书1000字
  • 网站建设 虚拟化郑州网络营销学校
  • 大龄网站开发人员搜索引擎优化seo专员招聘
  • 网站怎么做任务赚钱百度知道答题赚钱
  • 建站快车复制网站内容seo专业培训班
  • 做企业云网站的企业邮箱搜索引擎营销方案例子
  • 泰州做网站公司怎么搭建自己的网站
  • 网站建设费属于业务宣传费吗昆明seo案例
  • 云开发网站网站死链检测工具