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

wordpress建站 知乎北京做网站建设的公司有哪些

wordpress建站 知乎,北京做网站建设的公司有哪些,潍坊兆通网站建设,做智能网站平台1.排序的概念及其运用 1.1排序的概念 排序#xff1a;所谓排序#xff0c;就是使一串记录#xff0c;按照其中的某个或某些关键字的大小#xff0c;递增或递减的排列起来的操作。 稳定性#xff1a;假定在待排序的记录序列中#xff0c;存在多个具有相同的关键字的记录… 1.排序的概念及其运用 1.1排序的概念 排序所谓排序就是使一串记录按照其中的某个或某些关键字的大小递增或递减的排列起来的操作。 稳定性假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次序保持不变即在原序列中r[i]r[j]且r[i]在r[j]之前而在排序后的序列中r[i]仍在r[j]之前则称这种排序算法是稳定的否则称为不稳定的。 内部排序数据元素全部放在内存中的排序。 外部排序数据元素太多不能同时放在内存中根据排序过程的要求不断地在内外存之间移动数据的排序。 2.插入排序 2.1.1基本思想 直接插入排序是一种简单的插入排序法其基本思想是 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中直到所有的记录插入完为止得到一个新的有序序列 。 实际中我们玩扑克牌时就用了插入排序的思想 2.1.2直接插入排序 当插入第i(i1)个元素时前面的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];//取出end1的值while (end 0) {if (tmp a[end]) {a[end 1] a[end];end--;}else {break;}}//当end-1该值最小取0位//当tmpa[end],此时end1取tmp值a[end1] 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];//取出end1的值while (end 0) {if (tmp a[end]) {a[end 1] a[end];end--;}else {break;}}//当end-1该值最小取0位//当tmpa[end],此时end1取tmp值a[end1] 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提出的方式取值的//当gap1时为插入排序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;}}//flag0;说明为顺序if (flag 0) {break;}}}6.1.1冒泡排序的特性总结 1. 冒泡排序是一种非常容易理解的排序 2. 时间复杂度O(N^2) 3. 空间复杂度O(1) 由于快排与归并排序格外重要将单独一篇文章讲解
http://www.dnsts.com.cn/news/44149.html

相关文章:

  • 雅奇小蘑菇做网站好不好用怎么在自己做网站
  • 网站设计风格类型wordpress函数文件夹
  • 企业网站群建设模式wordpress 产品分类侧边栏
  • 北京网站开开发公司大旺建设局网站
  • 淄博的大型网站建设json做网站的数据库
  • 网站开发师贴吧厦门集团网站建设
  • 起个娱乐网站名字科技网站新版网站上线
  • 私人做网站的流程如何做响应式网站设计
  • 建设银行的网站是多少网站设计理念介绍
  • 大连市住房与城乡建设部网站中国最大的编程公司
  • 企业模板建站公司公司网站建设佛山哪家专业
  • 企业做网站的概要wordpress菜单子菜单
  • 福永网站推广河北建筑工程学院招生网官网
  • 佛山网站优化什么价格高德地图怎么导航环线
  • 国外电子商务网站网站网站制作价格建站网站
  • 网站怎么做百度认证吗wordpress怎么填写横幅图片
  • 上海做网站哪家公司海南房产网站开发
  • 斗牛网站开发专业排名优化工具
  • 做网站好看的背景图片wordpress文章详情页
  • 厦门做网站公司哪家好wordpress所有分类
  • 为什么大家用wordpress建网站网络编程就业前景
  • 个人怎么做网站优化wordpress签到积分
  • h5网站建设 北京广东城乡住房建设部网站
  • 地区性门户网站是什么意思网站备案通过之后
  • wordpress安装路径和站点地址的设置怎么申请域名 制作网站
  • 企业网站是如何做的深圳市福田区建设局网站
  • wordpress站点logo设置2022千锋教育培训收费一览表
  • 网站定制开发怎么做网站空间在哪买
  • 安徽股票配资网站建设wordpress文章加字段
  • 用asp.net开发网站的优势久久建筑网登录入口