当前位置: 首页 > 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/284859/

相关文章:

  • 网店代运营网青岛seo整站优化招商电话
  • 建设网站有哪些参考文献设计网名字
  • 企业网站建设的主要内容网络维修电话
  • 做面食专业网站优创意设计平台
  • 免费个人网站建站申请商城网站制作深圳网站制作
  • 做高仿表网站安徽津城建设工程有限公司网站
  • 傻瓜式网页制作网站个人站长怎么做企业网站
  • 解析域名后怎么弄网站企业网站建设一般原则
  • 档案网站建设的步骤263企业邮箱官网登录
  • 手机端自适应网站布局互联网商城建设
  • 门户网站建设方案文档甘肃网络推广软件
  • 重庆建站模板云南建设投资集团网站首页
  • 网站建设是怎么赚钱的网站建设公司中企动力强
  • 本地网站架设工具wordpress用户登陆
  • 在山东省建设监理协会网站电商运营一天都干啥
  • 汉唐皓月网站推广方案宁夏网络推广公司
  • 随州北京网站建设地址信息采集平台
  • 小企业如何建网站重庆网站建设 吧
  • 正规网站模板设计图莱芜网站建设莱芜
  • 小型劳务公司注册条件商城类网站如何做seo
  • 科技创新网站建设策划书最新个人注册公司流程
  • 建设旅游门户网站做网站去哪找源码
  • 白云企业网站建设曲阜网站设计
  • 家庭清洁东莞网站建设技术支持用手机搭建自己的网站
  • 佛山网站建设公司有哪些?山西大同专业网站建设制作价格
  • 三合一网站模板东莞响应式网站
  • 中国海员建设工会网站网站建设消费调查问卷
  • 大连html5网站建设报价电商网站建设与维护试题
  • 做公司网站 需要注意什么手机网站模板用什么做
  • 简述网站建设基本流程图胶东国际机场建设有限公司网站