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

杭州网站制网站运营需要 做哪些工作

杭州网站制,网站运营需要 做哪些工作,网站开发的主题,免费建立自己的网站代码⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈数据结构 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 总结 1. 归并排序2. 计数排序3. 排序…

⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:浅谈数据结构
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖

总结

  • 1. 归并排序
  • 2. 计数排序
  • 3. 排序算法复杂度及稳定性分析

在这里插入图片描述
在总结之前我们先介绍一下归并排序和计数排序!

1. 归并排序

归并排序(MERGE-SORT) 是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序核心步骤:
在这里插入图片描述

代码实现:

/*** 归并排序* 时间复杂度:O(N*logN)* 空间复杂度:O(logN)* 稳定性:稳定的排序* 目前为止3个稳定的排序:直接插入排序、冒泡排序、归并排序* @param array*/public static void mergeSort(int[] array){mergeSortFun(array,0,array.length-1);}private static void mergeSortFun(int[] array,int start,int end){if(start>=end){return;}//拆分int mid=(start+end)/2;mergeSortFun(array,start,mid);mergeSortFun(array,mid+1,end);merge(array,start,mid,end);//合并}private static void merge(int[] array,int left,int mid,int right){//定义拆分后的左边部分int s1=left;int e1=mid;//定义拆分后的右边部分int s2=mid+1;int e2=right;//定义一个新数组存放合并后的数据int[] tmp=new int[right-left+1];int i=0;//tmp的下标//同时满足-证明两个归并段都有数据while(s1<=e1&& s2<=e2){if(array[s1]<=array[s2]){tmp[i++]=array[s1++];}else{tmp[i++]=array[s2++];}}while(s1<=e1){tmp[i++]=array[s1++];}while (s2 <= e2) {tmp[i++]=array[s2++];}//把排好序的数据 拷贝回原来的数组array当中for(int j=0;j<tmp.length;j++){array[j+left]=tmp[j];}}

归并排序可以解决海量数据的排序问题:
外部排序:排序过程需要在磁盘等外部存储进行的排序
前提: 内存只有 1G,需要排序的数据有 100G
因为内存中因为无法把所有数据全部放下,所以需要外部排序,而归并排序是最常用的外部排序。

  1. 先把文件切分成 200 份,每个 512 M
  2. 分别对 512 M 排序,因为内存已经可以放的下,所以任意排序方式都可以
  3. 进行 2 路归并,同时对 200 份有序文件做归并过程,最终结果就有序了

2. 计数排序

基本思想: 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 操作步骤:

  1. 统计相同元素出现次数
  2. 根据统计的结果将序列回收到原来的序列中

代码实现:

/*** 计数排序的场景:* 指定范围内的数据* 时间复杂度: O(MAX(N,范围))* 空间复杂度:O(范围)* 稳定性:稳定的排序* @param array*/public static void countSort(int[] array) {//寻找最大值、最小值int maxvalue=array[0];int minvalue=array[0];for(int i=0;i<array.length;i++){if(array[i]>maxvalue){maxvalue=array[i];}if(array[i]<minvalue){minvalue=array[i];}}int[] countarr=new int[maxvalue-minvalue+1];//记录array中元素出现个数,初始值都为0for(int i=0;i<array.length;i++){countarr[array[i]-minvalue]++;}int index=0;//重新定义array下标for(int i=0;i<countarr.length;i++){while(countarr[i]>0){array[index]=i+minvalue;index++;countarr[i]--;}}}

3. 排序算法复杂度及稳定性分析

在这里插入图片描述

排序方法最好平均最坏空间复杂度稳定性
冒泡排序O(n)O(n^2)O(n^2)O(1)稳定
插入排序O(n)O(n^2)O(n^2)O(1)稳定
选择排序O(n^2)O(n^2)O(n^2)O(1)不稳定
希尔排序O(n)O(n^1.3)O(n^2)O(1)不稳定
堆排序O(n * log(n))O(n * log(n))O(n * log(n))O(1)不稳定
快速排序O(n * log(n))O(n * log(n))O(n^2)O(log(n)) ~ O(n)不稳定
归并排序O(n * log(n))O(n * log(n))O(n * log(n))O(n)稳定
http://www.yayakq.cn/news/150583/

相关文章:

  • 配送系统网站怎么做快速做网站费用
  • 官网网站设计费用网站设计的概述
  • 深圳网站开发哪个好网站维护基本概念认知
  • 网站建设开发软件教程顺义手机网站建设
  • 中国专业做鞋子的网站网站换服务器 备案
  • 建设一个商城网站大概多少钱建站模板有哪些
  • 安徽省铜陵市建设银行网站线上编程培训机构哪家好
  • 网站开发 零基础前端开发培训机构成都
  • 为网站开发uwp应用多终端响应式网站
  • 高校 门户网站 建设背景网络营销方案分享
  • 登封免费网站建设网站加ico
  • 陕西建设执业中心网站办事大厅个人设计网站论文摘要
  • 深圳市设计网站公司财务费是指企业为施工生产
  • 六数字域名做网站好不好如何上传网站程序
  • 以下工具属于网站设计工具的是seo整站优化
  • 网站建设论证方案做网站的流程前端做什么
  • 湖州企业做网站小游戏网站怎么做
  • 东莞网站建设哪家专业网站建站推广是啥意思
  • 做空机构的网站wordpress 插件安装失败
  • iis配网站wordpress中文杂志主题
  • 地方旅游网站建设方案高端建设网站
  • 江苏省城乡建设厅网站口碑好的免费网站建设
  • 九冶建设有限公司官方网站常见的网站建设技术
  • 网站策划书模板东莞网站建设排名 南城
  • 哪些网站可以做详情页初学者3d建模要什么软件
  • 网络营销网站建设方案做app网站有哪些功能
  • 深圳狮科网站建设个人网站怎么做视频
  • 加强门户网站建设方案企业网站建设的意义
  • 苏州网站建设集团用layui做的网站
  • 网站demo制作互联网网站类型