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

网站开发数据库连接失败怎样让自己做的网站被百度收录

网站开发数据库连接失败,怎样让自己做的网站被百度收录,正规制作网站公司,网站开发单子目录 插入排序 直接插入排序 希尔排序 希尔排序基本思路解析 希尔排序优化思路解析 完整希尔排序文件 插入排序 直接插入排序 所谓直接插入排序#xff0c;即每插入一个数据和之前的数据进行大小比较#xff0c;如果较大放置在后面#xff0c;较小放置在前面#x…目录 插入排序 直接插入排序 希尔排序 希尔排序基本思路解析 希尔排序优化思路解析 完整希尔排序文件 插入排序 直接插入排序 所谓直接插入排序即每插入一个数据和之前的数据进行大小比较如果较大放置在后面较小放置在前面具体思路分析如下 //以下面的数组为例 int data[] { 23,34,84,99,67,26,21,89 }; 参考代码 #define _CRT_SECURE_NO_WARNINGS 1#include stdio.hvoid DirectInsert_sort(int* data, int sz) {// 遍历数组for (int i 1; i sz; i){int tmp data[i];//获取数组的当前元素int end i - 1;//获取数组的当前元素的上一个元素//当遇到比tmp大数值时挪动数据直到遇到比当前数据小的数据时跳出循环while (end 0){if (data[end] tmp){data[end 1] data[end];end--;}else{break;}}//在end的后一个位置插入数据插入完毕后直接更新i和end继续比较data[end 1] tmp;} }int main() {int data[] { 23,34,84,99,67,26,21,89 };int sz sizeof(data) / sizeof(int);DirectInsert_sort(data, sz);//打印排序后的数组for (int i 0; i sz; i){printf(%d , data[i]);}return 0; } 输出结果 21 23 26 34 67 84 89 99 通过分析可以得出直接插入排序在最坏的情况下数据为完全逆序的状态时间复杂度为O(N2)而在最好的情况下已经为有序状态只需要遍历一遍数据即可时间复杂度为O(N) 希尔排序 希尔排序基本思路解析 希尔排序的基本思路是将一组数据按照间隔值gap分成gap组对各组进行插入排序这一步被称作预排序接着再使用直接插入排序对整体再进行一次排序具体过程如下 //希尔排序基础思路 void ShellSort(int* data, int sz) {int gap 3;//首先进行三组预排序for (int i 0; i gap; i){//每一组的排序for (int j gap i; j sz; j gap){int end j - gap;int tmp data[j];while (end 0){if (data[end] tmp){data[end gap] data[end];end - gap;}else{break;}}data[end gap] tmp;}}//最后进行整体插入排序gap 1;for (int i gap; i sz; i gap){int end i - 1;int tmp data[i];while (end 0){if (data[end] tmp){data[end gap] data[end];end--;}else{break;}}data[end gap] tmp;} } 希尔排序优化思路解析 以上思路只是简单的分析接下来对细节进行分析优化具体思路如下 首先是间隔值gapgap决定了分组的数量也间接决定了最大值走到最后需要的次数当gap特别大时最大值很快就会到数据的最末尾但是同时整体越不接近需要的升序相反当gap特别小时最大值到数据末尾的次数变多同时整体越接近有序所以gap数值不容易确定但是一般取gap为整体的1/3或者取1/2即gap size / 3或gap size / 2 (size是数组长度) 第二个问题如果将预排序和最后的插入排序分开写那么需要写五个循环三层循环解决预排序两层循环解决最后的插入排序所以可以考虑将预排序与直接插入排序放在一起达到在同一个循环中解决问题 可以考虑将每一次循环变量移动的位置改为移动一位代替原来的一次移动gap位如下图所示 而改进后的思路与原来的思路对比原来的思路是先排一组排完一组后再排第二组而改进后的思路是遇到i当前位置是哪一组的就排哪一组的数据但是需要注意的是当前的tmp所在位置为下一个相差gap的位置该位置需要有确切的数值可以与end进行比较所以tmp不能越界假设当前tmp为3数组最大下标为7也就是tmp所在的下标最大只能为7即i gap不能超过7故i最大只能为4所以i不能超过5 接下来是如何处理预排序和之后的直接排序放在一起的问题对于这个问题首先就是gap不能为一个固定值如果gap为固定的某一个数值例如3那么预排序和直接插入排序还是需要两组循环才能解决鉴于gap最后需要回到1可以考虑从gap/3分组开始当预排序完gap为3的一组时接下来排gap为2的一组最后着排gap为1的一组因为第一次gap为3时已经将数据处理了一遍而gap数值越小就会使预排序的结果更接近预期的排序结果所以可以考虑gap gap / 3每执行完一次预排序就更换一次gap间隔值从而达到预排序与最后的直接插入排序放在一起因为当gap为1时也可以满足预排序的思路故放在一起也不会有任何冲突只是间隔值从3变成了1,但是需要注意一个问题当gap小于3时gap最后的商为0导致gap无法取到1所以需要写成gap gap / 3 1 //希尔排序优化思路 void ShellSort_modified(int* data, int sz) {int gap sz;while (gap 1){gap gap / 3 1;// 此处加1是为了确保最后一个gap一定为1因为最后的直接插入排序是整体各自比较for (int i 0; i sz - gap; i){int end i;int tmp data[i gap];while (end 0){if (data[end] tmp){data[end gap] data[end];end - gap;}else{break;}}data[end gap] tmp;}} } 完整希尔排序文件 #define _CRT_SECURE_NO_WARNINGS 1#include stdio.h//希尔排序优化思路 void ShellSort_modified(int* data, int sz) {int gap sz;while (gap 1){gap gap / 3 1;// 此处加1是为了确保最后一个gap一定为1因为最后的直接插入排序是整体各自比较for (int i 0; i sz - gap; i){int end i;int tmp data[i gap];while (end 0){if (data[end] tmp){data[end gap] data[end];end - gap;}else{break;}}data[end gap] tmp;}} }int main() {int data[] { 23,34,84,99,67,26,21,89 };int sz sizeof(data) / sizeof(int);ShellSort_modified(data, sz);for (int i 0; i sz; i){printf(%d , data[i]);}return 0; } 输出结果 21 23 26 34 67 84 89 99 希尔排序总结 希尔排序是对直接插入排序的优化当gap 1时都是预排序目的是让数组更接近于有序。当gap 1时数组已经接近有序的了这样就会很快。这样整体而言可以达到优化的效果。我们实现后可以进行性能测试的对比希尔排序的时间复杂度不好计算因为gap的取值方法很多导致很难去计算因此在好些树中给出的希尔排序的时间复杂度都不固定
http://www.dnsts.com.cn/news/215514.html

相关文章:

  • 温州外贸网站建设wordpress discuz 整合
  • 台州做网站需要多少钱网站做支付链接安全吗
  • 陕西省建设厅网站首页wordpress主题制作技巧
  • 给六人游做网站开发的免费网站软件哪个好
  • 青岛网站设计公司电话龙口网站建设哪家专业
  • 单位网站建设意见承德网站建设设计
  • 苏州建网站皆去苏州聚尚网络做企业网站建设挣钱吗
  • 影楼网站建设wordpress改商城
  • 电子商务网站建设课程标准wordpress wp rocket
  • 美食网站开发流程上线了做网站多少钱
  • 网站建设总流程图建筑学不会画画影响大吗
  • 镇江seo网站优化网站cms系统 开源
  • 网站定制套餐网站建设概括
  • 男女做羞羞的事网站用dw制作个人网页
  • 江苏网站建设基本流程公司注册代理机构
  • 公司门户网站及oa系统建设的请示外国网站 icp备案
  • 设计商城商务网站网站下载软件
  • 上海市建设干部学校网站免费logo设计图案创意
  • 南城做网站WordPress制作安卓
  • 房产网签合同企业网站seo怎么做
  • 网站开发vsc青岛百度seo代理
  • 青岛开发区建设局网站公司网站建设工作通知
  • 外贸seo网站建站wordpress 仿ifanr
  • 公司网站费用计入什么科目做网站需要加班吗
  • 模板网站是什么意思云网站开发
  • 海口模板建站平台网架公司的螺丝是不是公司安好
  • 网站域名改版珠海网站优化公司
  • 一般可以建些什么种类的网站菲律宾做网站
  • 成都企业网站的建立广告推广的好处
  • 网站空间到期影响有没有购买链接