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

家政网站怎么做百度数据研究中心

家政网站怎么做,百度数据研究中心,网络系统管理大赛样题,微信网站域名备案成功后怎么做冒泡排序 利用每趟都确定出一个最大值或者最小值 如果需要排一个从小到大的数组,那么我们每一趟都要确定一个最大值放在最后,一共有n个数,我们最多需要排列n-1趟就可以了,我们可以改进自己的代码,利用一个flag标记&a…

冒泡排序

利用每趟都确定出一个最大值或者最小值

如果需要排一个从小到大的数组,那么我们每一趟都要确定一个最大值放在最后,一共有n个数,我们最多需要排列n-1趟就可以了,我们可以改进自己的代码,利用一个flag标记,最初flag为0,当需要发生交换的时候,flag修改成1,。

冒泡的时间复杂度最优的时候为O(n),最差的时候为O(n^2).

稳定性:稳定

接下来我们写一下代码

void bubblesort(int*nums,int n){for(int i=1;i<=n-1;i++){int flag=0;for(int j=0;j<=n-1-i;j++){if(nums[j]>nums[j+1]){swap(&nums[j],&nums[j+1]);flag=1;}}if(flag==0){return ;}}
}

排序算法都不需要返回值的。

选择排序

根据排序的名字我们就可以了解到这个排序和选择有关,当然我们需要选择一个最大的或者最小的与待排序数组最后一个发生交换。

每次都要查找最后出待排序数组最大的一个元素,我们采用遍历的形式,最好用index标记最大值的数组下标。

void seletsort(int*nums,int n){for(int i=1;i<=n-1;i++){int maxindex=0;for(int j=1;j<n-i;j++){if(nums[maxindex]<nums[j]){maxindex=j;}}if(maxindex!=n-i){swap(&nums[maxindex],&nums[n-i]);}}
}

时间复杂度O(n^2),在性能上优于冒泡,稳定性:不稳定;

因为当几个相同的元素,在筛选的时候会优先选择前边的先排列,会造成元素之间位置交换,所以选择排序在稳定性上并不稳定。

插入排序

将数组分为有序区和无序区,在未排序的时候数组有序区元素个数为1个,nums[0],遍历无序区,

将无序区第一个元素与有序区的元素依次比较,如果无序区元素大于有序区元素,那么不用发生位置变化,如果小于有序区元素,有序区元素就要依次向后移动一位。

代码如下

void insertsort(int*nums,int n){for(int i=1;i<=n-1;i++){int j=i-1;int temp=nums[i];for(;j>=0;j--){if(nums[j]>temp){nums[j+1]=nums[j];}else{break;}}nums[j+1]=temp;}
}

时间复杂度:当最好的情况数组本身就是有序的,O(n),

                      最糟糕的情况O(n^2);

                      直接插入排序比冒泡选择的性能好一些。

稳定性分析:稳定的

计数排序(桶排序)

望文生义,桶排序就像一个大桶一样把数据都存储进去,我们把数组比喻成了桶,遍历一遍我们的待排序数组,把数组中成功出现的元素,记录在新数组中

这个新数组我们需要利用calloc申请空间,因为calloc申请的数组默认初始化为0,最后记得要释放内存。

一个数可能在待排序数组中出现好多次我们需要解决好这个问题不能遗漏元素。

桶排序不是元素比较而是利用下标来确定元素的正确位置。

代码如下

首先需要一个函数确定待排序数组中最大的元素是几,由此来确定桶的下标范围

int maxVal(int* nums, int n) {int max = nums[0];for (int i = 1; i < n; i++) {if (nums[i] > max) {max = nums[i];}}return max;
}
void bucketsort(int* nums, int n) {int max = maxVal(nums, n);//原数组最大值int* bucket = (int*)calloc((max + 1), sizeof(int));//用桶计数,记录元素出现的次数for (int i = 0; i < n; i++) {bucket[nums[i]]++;}int index = 0;for (int i = 0; i < =max ; i++) {while (bucket[i]--) {//计数归零的时候停止nums[index++] = i;}}}

时间复杂度O(n);

空间复杂度O(n);

稳定排序

http://www.zhongyajixie.com/news/23522.html

相关文章:

  • 建立网站编码 优帮云百度q3财报2022
  • 网站换模板对seo北京网站建设优化
  • 二次元网站模板301313龙虎榜
  • 服装营销型网站建设杭州seo博客有哪些
  • 手机端网站怎么做网站模板购买
  • 深圳网站制作建设公司推荐精准营销及推广
  • asp网站首页网店交易平台
  • 做网站用java好还是c百度搜索引擎关键词
  • 给一个装修公司怎么做网站网络策划与营销
  • 网站优化套餐百度网址提交入口
  • 装配式建筑信息平台向日葵seo
  • 南昌网站建设志博精准营销的概念
  • 网线制作规范seo自媒体运营技巧
  • 网站专栏建设情况360公司官网首页
  • 小程序介绍内容怎么写优化外包服务公司
  • 外贸流程的基本流程图怎么进行网站关键词优化
  • 长春做高端网站公司网页制作三大软件
  • 如何建立自己公司的官方网站邵阳网站seo
  • 自己做的网站如何百度能搜索b站推广网站2022
  • 柳州网站建设网络推广优化招聘
  • 简述网站的建设方案网易游戏推广代理加盟
  • 公司名字大全3个字seo工具大全
  • 佛山做网站的哪个好网络营销产品的特点
  • 山西建筑劳务网站搜索最多的关键词的排名
  • 网站建设的方案厦门网络推广外包
  • 免费网站建设优化百度站长平台
  • 如何搭建静态网站天津建站网
  • 关于网站开发的网店计划书范文seo计费系统源码
  • 青岛网站搭建公司百度客服24小时人工电话
  • 做推广用的网站搜索引擎营销与seo优化