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

怎么做国外的网站网站建设实训结论与分析总结

怎么做国外的网站,网站建设实训结论与分析总结,在互易上做的网站如何修改,政务网站建设工作计划1.排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序…

1.排序的概念

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排 序算法是稳定的;否则称为不稳定的。

内部排序:数据元素全部放在内存中的排序。

外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不断地在内外存之间移动数据的排序。

2.常见的排序算法

插入排序:直接插入排序,希尔排序

选择排序:选择排序,堆排序

交换排序:冒泡排序,快速排序

归并排序:归并排序

Comparison Sorting Visualization-各个排序算法的动态演示效果

2.1冒泡排序

基本思想:

所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排 序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

冒泡排序是左右相邻的两个元素比较,元素范围是[0,n-1]

冒泡排序的特性总结:

1. 冒泡排序是一种非常容易理解的排序

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

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

4. 稳定性:稳定

上图是加入了flag标记值进行了优化,如果进行了交换就把flag值置为1,如果不变就说明是有序的,直接break。

2.2插入排序

直接插入排序是一种简单的插入排序算法,基本思路:

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

当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序

此时用array[i]的排序码与 array[i-1],array[i-2],…的排序码顺序进行比较

找到插入位置即将array[i]插入,原来位置上的元素顺序后移

理解上述代码,有n个数据,数据元素范围[0,n-1],插入排序的思想就是前[0,end]个数据是有序的,现在要把第(end+1)位置的数据插入到[0,end]中,保持有序。

记录第(end+1)个位置的数据,与之前的位置进行比较,插入到合适的位置,将原来的数据往后挪动(会把end+1位置的数据覆盖),之前记录的数据就有必要了,当end=-1,将把tmp(end+1)位置的数据给它,这样整个序列就变成有序的了。

直接插入排序的特性总结:

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

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

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

4. 稳定性:稳定

2.3希尔排序(缩小增量排序)

希尔排序:

1.预排序(让数组接近有序)

2.插入排序

基本思想是:先选定一个整数,把待排序文件中所有记录分成gap个组,所有距离为gap的记录分在同一组内,并对每一组内的记录进行排序。然后重复上述分组和排序的工 作。

当到达gap=1时,所有记录在统一组内排好序。

预排序:

gap越大,大的数可以越快跳到后面,小的数可以越快跳到前面,但越不接近有序。

gap越小,跳的越慢,但越接近有序,当gap=1的时候就相当于插入排序,就有序了。

希尔排序的特性总结:

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

2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就 会很快。这样整体而言,可以达到优化的效果。

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

4.时间复杂度:O(N^1.3)

4. 稳定性:不稳定

2.4选择排序

基本思想:

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的 数据元素排完 。

直接选择排序:

在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素。

若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换。

在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素。

这里我做了一点小优化,在我们遍历的时候,同时找到最小和最大的元素,然后把最小的和第一个位置交换,把最大的和最后一个位置交换(这里值得注意的是,如果第一个元素是最大的,因为在这之前我们已经把最小的元素和第一个位置进行了交换,此时第一个位置的元素就不是我们需要的最大的元素了,所以要及时更新最大的元素的位置,然后再把它交互到最后一个位置)

直接选择排序的特性总结:

1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用

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

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

4. 稳定性:不稳定

2.5堆排序

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。

直接选择排序的特性总结:

1. 堆排序使用堆来选数,效率就高了很多。

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

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

4. 稳定性:不稳定

http://www.yayakq.cn/news/626755/

相关文章:

  • 宁波网站制作网站开发网站私活
  • 门户网站设计特点好用WordPress产品展示主题
  • 网站建设开发费用预算安卓小项目源码免费网站
  • 手机网站费用酒店网站建设便宜
  • 绿色网站设计广州公司注册代理公司注册服务
  • python做网站源码长安区建设局官网站站
  • 企业网站做静态网站还是自己做企业网站用哪个软件
  • 网站优化排名易下拉霸屏小型电子商务网站开发
  • 番禺网络公司wordpress seo 优化
  • 清远专业网站建设服务新浪云应用 wordpress
  • 帮别人做网站被抓对单位网站建设的建议
  • ps 做网站切图网站的备案流程
  • 做网站都不赚钱了吗潍坊seo关键词排名
  • 许昌小学网站建设天津网站建设价格多少
  • 有没有做链接的网站dede 如何做视频网站
  • 低价网站建设资讯wordpress图标字体不显示
  • 如何提高网站在百度的排名wordpress模板开发套用
  • 杭州开发区网站建设新北做网站
  • 绍兴专业做网站城厢区住房和城乡建设局网站
  • 哪些网站做外链京东网站推广方式
  • 企业网站建设需要提供什么材料在线房产网
  • 网站制作 视频福州商城网站开发公司
  • 南京建站公司模板成都做网络推广的公司有哪些
  • 1688货源网官方网站wordpress博客文章栏目
  • 小当网 绵阳网站建设互联网技术对人们工作生活的影响
  • 建网站 就能开店做一款网站注意啥
  • 网站怎么可以被收录站长网站工具
  • 素材网站 国外咸宁网站建设
  • 上海网站建设企业建站网站开发公司职位
  • 网站开发的合同范本微信小程序游戏开发