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

做品牌推广用什么网站seo在线优化平台

做品牌推广用什么网站,seo在线优化平台,网站售后服务模板,怎么做网站后台界面1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…

1.排序的概念及其运用

1.1排序的概念

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

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

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

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

2.插入排序

2.1.1基本思想:

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

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

实际中我们玩扑克牌时,就用了插入排序的思想

2.1.2直接插入排序:

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

2.2插入排序实现

实现思路:

2.2.1实现单次插入排序

想完成整体的插入排序,完成单次最为关键

1.从第一个元素开始,该元素可以认为已经被排序
2.取下一个元素tmp,从已排序的元素序列从后往前扫描
3.如果该元素大于tmp,则将该元素移到下一位
4.重复步骤3,直到找到已排序元素中小于等于tmp的元素
5.tem插入到该元素的后面,如果已排序所有元素都大于tmp,则将tmp插入到下标为0的位置
6.重复步骤2~5

思考:while循环的条件

当我们完成最后一次循环的时候,由于end--,致最后一次end=-1;

所以:while条件 

while (end >= 0)

//插入排序
void InsertSort(int* a, int n) {int end = 1;int tmp = a[end + 1];//取出end+1的值while (end >= 0) {if (tmp < a[end]) {a[end + 1] = a[end];end--;}else {break;}}//当end=-1,该值最小,取0位//当tmp>a[end],此时end+1取tmp值a[end+1] = tmp;
}

  2.2.2插入排序代码

时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序
      最好情况下为O(N),此时待排序列为升序,或者说接近升序。
空间复杂度:O(1)

//插入排序
void InsertSort(int* a, int n) {for (int i = 0; i < n; i++) {int end = i;int tmp = a[end + 1];//取出end+1的值while (end >= 0) {if (tmp < a[end]) {a[end + 1] = a[end];end--;}else {break;}}//当end=-1,该值最小,取0位//当tmp>a[end],此时end+1取tmp值a[end+1] = tmp;}}

3.希尔排序

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

步骤:
1.先选定一个小于N的整数gap作为第一增量,然后将所有距离为gap的元素分在同一组,并对每一组的元素进行直接插入排序。然后再取一个比第一增量小的整数作为第二增量,重复上述操作…
2.当增量的大小减到1时,就相当于整个序列被分到一组,进行一次直接插入排序,排序完成。

3.1希尔排序代码

时间复杂度平均:O(N^1.3)
空间复杂度:O(1)

gap可以为<=n的任意整数,这里的gap是按照Knuth提出的方式取值的  


void ShellSort(int* a, int n) {//每次与gap+该位置的比较int gap = n;while (gap > 1) {gap = gap / 3 + 1;//gap是按照Knuth提出的方式取值的//当gap=1时,为插入排序for (size_t 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;}}
}

3.2希尔排序的特性总结:

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

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

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

4.堆排序

由于在数据结构-堆有讲解,这里就不单独拿出来讲解,但是需要注意的是排升序要建大堆,排降序建小堆,需要可以查看下方地址

【数据结构】详解堆-CSDN博客

5.选择排序

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

5.1选择排序代码

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

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

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

void SelectSort(int* a, int n) {int begin = 0;int end = n - 1;
//首尾位置while (begin < end) {int mini = begin;//保留最大与最小值int max = end;for (int i = begin + 1; i <= end; i++) {if (a[i] > a[max]){max = i;}if (a[i] < a[mini]){mini = i;}}//避免当最大为首位置时,与最小交换,此时最大在mini位置Swap(&a[begin], &a[mini]);if (begin == max)max = mini;Swap(&a[end], &a[max]);++begin;--end;}
}

6.交换排序

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

 耳熟能详的是冒泡排序与快速排序

6.1 冒泡排序

//冒泡排序
void BubbleSort(int* a, int n)
{for (int j = 0; j < n; j++) {int flag = 0;//减少排序次数,如果序列为有序序列,则直接跳出循环for (int i = 0; i < n - j; i++) {if (a[i - 1] > a[i]) {Swap(&a[i - 1], &a[i]);flag = 1;}}//flag=0;说明为顺序if (flag = 0) {break;}}}

6.1.1冒泡排序的特性总结:

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

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

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


由于快排与归并排序格外重要,将单独一篇文章讲解

http://www.khdw.cn/news/28893.html

相关文章:

  • 家装设计师网站360推广登陆
  • 深圳高速建设有限公司站长工具seo综合查询网
  • 广州网站建设网站快速建站
  • 正规网站制作公司哪家好百度一下你就知道官方网站
  • wordpress 关联表seo营销论文
  • 淘客做网站运营长春seo外包
  • 网站优化工作室美国今天刚刚发生的新闻
  • 国外摄影网站网销怎么销售的
  • 自己的网站做一些诱惑竞价代运营外包公司
  • 怎么做香港团购网站成都seo工程师
  • ios开发者账号多少钱一年seo关键词排名优化方案
  • wordpress定制企业站网站运营是做什么的
  • 自建网站模板下载网址关键词查询网站
  • 中国招标建设信息网站广告类的网站
  • 可信网站标识百度账号登录入口官网
  • 网站开发建设合同模板seo项目是什么
  • 网站建设谈客户说什么网站制作优化
  • wordpress purecss杭州网站推广优化公司
  • 旅游网站怎么做才能被关注景德镇seo
  • 高性能网站建设在线阅读seo整站怎么优化
  • 广东建设数据开放平台系统seo培训机构排名
  • 做网站好的网络公司手机上如何制作自己的网站
  • 网站优化流程图泉州关键词排名
  • 新冠咳嗽吃什么药止咳效果好seo关键词排名优化哪家好
  • 制作企业网站公司排名免费搭建网站平台
  • 做网站先做前台还是后台淘宝店铺怎么推广和引流
  • .net做网站seo外包公司哪家好
  • 萧山区建设委员会网站郑州疫情最新动态
  • 做网站送推广怎么自己创建网站
  • app开发导入网站模板关键词排名哪里查