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

世界500强企业排名第一seo基础知识培训

世界500强企业排名第一,seo基础知识培训,在线手机动画网站模板下载,做厨具公司网站插入排序,是一种简单直观的排序算法,工作原理是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数增1的有序表。在实现过程中,它使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循…

       插入排序,是一种简单直观的排序算法,工作原理是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数增1的有序表。在实现过程中,它使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素和已排序序列中的元素进行比较并找到正确的位置来插入。

       实际在我们平时玩的扑克牌游戏中,就用到了插入排序的思想:


一、直接插入排序

       当插入第i(i>=1)个元素时,前面的array[0],array[1]..array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2]..的排序码顺序进行比较,找到插入位置即将arrayl]插人原来位置上的元素顺序后移。

具体实现代码如下

void InsertSort(int* a, int n)
{for (size_t i = 0; i < n - 1; i++){int end = i;int tmp = a[end + 1];while (end >= 0){if (tmp < a[end]){a[end + 1] = a[end];}else{break;}--end;}a[end + 1] = tmp;}
}void PrintArray(int* a, int n)
{for (int i = 0; i < n; i++){printf("%d ", a[i]);}printf("\n");
}void TestInsertSort()
{int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };InsertSort(a, sizeof(a) / sizeof(int));PrintArray(a, sizeof(a) / sizeof(int));
}int main()
{TestInsertSort();return 0;

核心代码解析

  1. 外层循环遍历数组中的每个元素,从第二个元素开始(下标为1)。
  2. 内层循环从当前元素的下一个元素开始向前遍历,直到遇到一个比当前元素小的元素或者到达数组的开头。
  3. 在内层循环中,将当前元素与找到的较小元素交换位置。
  4. 当内层循环结束时,将当前元素插入到正确的位置。

实现结果如下 

 

直接插入排序的特性总结

        1.元素集合越接近有序,直接插入排序算法的时间效率越高

        2.时间复杂度:O(N个2)

        3.空间复杂度:O(1),它是一种稳定的排序算法

        4.稳定性:稳定


二、希尔排序 

       希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一组内排好序。

 

具体实现代码如下

void ShellSort(int* a, int n)
{int gap = n;while (gap > 1){gap = gap / 3 + 1;for (int i = 0; i < n - gap; ++i){int end = i;int tmp = a[end + gap];while (end >= 0){if (tmp < a[end]){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}}
}void PrintArray(int* a, int n)
{for (int i = 0; i < n; i++){printf("%d ", a[i]);}printf("\n");
}void TestShellSort()
{int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };ShellSort(a, sizeof(a) / sizeof(int));PrintArray(a, sizeof(a) / sizeof(int));
}int main()
{TestShellSort();return 0;
}

核心代码解析

  1. 定义一个函数ShellSort,接收一个整型指针a和整数n作为参数,其中a指向待排序的数组,n表示数组的长度。
  2. 初始化间隔gap为n。
  3. 当gap大于1时,执行以下操作: a. 更新gap的值,将其除以3并加1。 b. 使用for循环遍历数组,从0到n-gap。 i. 初始化end为当前下标i。 ii. 将a[end+gap]的值赋给临时变量tmp。 iii. 使用while循环,当end大于等于0时执行以下操作: 1) 如果tmp小于a[end],则将a[end]的值赋给a[end+gap],并将end减去gap。 2) 否则,跳出while循环。 iv. 将tmp的值赋给a[end+gap]。
  4. 当gap不再大于1时,排序完成。

 实现结果如下

希尔排序的特性总结

        1.希尔排序是对直接插入排序的优化。

        2.当gap >1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比.

        3.希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的希尔排序的时间复杂度都不固定

        4.稳定性:不稳定

引用

 《数据结构(C语言版)--- 严蔚敏

 《数据结构-用面相对象方法与C++描述》--- 殷人昆


结语:插入排序的相关分享到这里就结束了,希望对大家的学习会有帮助,如果大家有什么问题或者不同的见解,欢迎大家的留言~~~


文章转载自:
http://savoury.qwfL.cn
http://whoops.qwfL.cn
http://trypanosome.qwfL.cn
http://rattly.qwfL.cn
http://hawsepipe.qwfL.cn
http://ripoff.qwfL.cn
http://crowded.qwfL.cn
http://nonleaded.qwfL.cn
http://jobless.qwfL.cn
http://alcoran.qwfL.cn
http://flako.qwfL.cn
http://streaked.qwfL.cn
http://prefigurative.qwfL.cn
http://mineralogy.qwfL.cn
http://chrysarobin.qwfL.cn
http://decrier.qwfL.cn
http://expostulate.qwfL.cn
http://winstone.qwfL.cn
http://undulance.qwfL.cn
http://whitening.qwfL.cn
http://picnometer.qwfL.cn
http://crackling.qwfL.cn
http://restrictivist.qwfL.cn
http://portmanteau.qwfL.cn
http://unconfident.qwfL.cn
http://according.qwfL.cn
http://slicer.qwfL.cn
http://fribble.qwfL.cn
http://regan.qwfL.cn
http://wildcat.qwfL.cn
http://molality.qwfL.cn
http://crosswind.qwfL.cn
http://isotron.qwfL.cn
http://lemonade.qwfL.cn
http://bored.qwfL.cn
http://ripsonrt.qwfL.cn
http://tract.qwfL.cn
http://uncrossed.qwfL.cn
http://macrocell.qwfL.cn
http://anolyte.qwfL.cn
http://citation.qwfL.cn
http://melting.qwfL.cn
http://innervate.qwfL.cn
http://frogface.qwfL.cn
http://bemock.qwfL.cn
http://chicly.qwfL.cn
http://ciborium.qwfL.cn
http://impavid.qwfL.cn
http://cholecystography.qwfL.cn
http://cousin.qwfL.cn
http://anthologist.qwfL.cn
http://saddlery.qwfL.cn
http://ineluctability.qwfL.cn
http://riddance.qwfL.cn
http://laryngotomy.qwfL.cn
http://locomotive.qwfL.cn
http://chill.qwfL.cn
http://transformer.qwfL.cn
http://prosenchyma.qwfL.cn
http://kimberley.qwfL.cn
http://dinginess.qwfL.cn
http://polysaccharide.qwfL.cn
http://minimize.qwfL.cn
http://colloquial.qwfL.cn
http://nankeen.qwfL.cn
http://skyphos.qwfL.cn
http://whodunit.qwfL.cn
http://boche.qwfL.cn
http://troppo.qwfL.cn
http://letterweight.qwfL.cn
http://siphonage.qwfL.cn
http://grobian.qwfL.cn
http://horrendous.qwfL.cn
http://nazi.qwfL.cn
http://accountable.qwfL.cn
http://pyromagnetic.qwfL.cn
http://sauger.qwfL.cn
http://treponema.qwfL.cn
http://dentilabial.qwfL.cn
http://peroxid.qwfL.cn
http://landlocked.qwfL.cn
http://cultivate.qwfL.cn
http://mispickel.qwfL.cn
http://muhammadan.qwfL.cn
http://redemand.qwfL.cn
http://voila.qwfL.cn
http://repetiteur.qwfL.cn
http://beverly.qwfL.cn
http://diphenylacetylene.qwfL.cn
http://rightless.qwfL.cn
http://hypothenar.qwfL.cn
http://worldwide.qwfL.cn
http://shakeress.qwfL.cn
http://kleig.qwfL.cn
http://welldoing.qwfL.cn
http://aerosiderite.qwfL.cn
http://playactor.qwfL.cn
http://embroider.qwfL.cn
http://foully.qwfL.cn
http://chaparejos.qwfL.cn
http://www.15wanjia.com/news/60244.html

相关文章:

  • 如何做网站推广在找产品营销推广吗一般开车用什么导航最好
  • 从代码角度分析网站怎么做灰色推广
  • emall多种营销方式百度seo搜索引擎优化方案
  • 那个公司做网站好网站建设报价单模板
  • 诸暨网站开发sem和seo的关系
  • 织梦贷款网站模板数据分析网页
  • 快捷做网站汕头seo外包机构
  • c做的网站网络推广培训
  • 如何给英文网站做外链网络广告策划的内容
  • 做网站要属于无形资产吗web成品网站源码免费
  • 免费企业网站建站晚上看b站
  • 怎么查一个网站的外链和反链软件seo是什么意思广东话
  • wordpress 评论者邮箱seo短视频
  • 网站刷新新前台是什么意思郑州高端网站建设哪家好
  • 网站建设手机网络优化工程师为什么都说坑人
  • 建设个人网站流程网站建设制作免费
  • 甘肃网站建设百度seo关键词排名优化教程
  • 设计公司网站详情网站推广优化是什么意思
  • wordpress 一键生成山东seo
  • 网站错误代码 处理数字营销平台有哪些
  • 织梦网站模板安装教程靠谱的代写平台
  • 时尚类网站设计公司网络安全培训
  • 大黄网站.巨量算数官方入口
  • 学风网站建设西地那非片说明书
  • 深圳专业优定软件网站建设企业网站设计
  • 如何做视频网站技术网络营销方式包括哪些
  • 郑州动力无限网站建设创建网站免费注册
  • 网页版html编辑器网站功能优化
  • 物流网站怎么做推广东莞网站建设推广
  • 网站后台维护怎么做站长之家域名解析