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

丹徒网站wordpress 关闭搜索功能

丹徒网站,wordpress 关闭搜索功能,公司做宣传网站,哪个网站可以找人做清洁八大排序详解 目录#xff1a;一、排序的概念1.1 排序的概念1.2 排序的应用 二、直接插入排序三、希尔排序四、排序算法复杂度及稳定性分析 目录#xff1a; 八大排序算法#xff1a; #mermaid-svg-7qCaGEYz0Jyj9dYw {font-family:trebuchet ms,verdana,arial,… 八大排序详解 目录一、排序的概念1.1 排序的概念1.2 排序的应用 二、直接插入排序三、希尔排序四、排序算法复杂度及稳定性分析 目录 八大排序算法 #mermaid-svg-7qCaGEYz0Jyj9dYw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .error-icon{fill:#552222;}#mermaid-svg-7qCaGEYz0Jyj9dYw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7qCaGEYz0Jyj9dYw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .marker.cross{stroke:#333333;}#mermaid-svg-7qCaGEYz0Jyj9dYw svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .cluster-label text{fill:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .cluster-label span{color:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .label text,#mermaid-svg-7qCaGEYz0Jyj9dYw span{fill:#333;color:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .node rect,#mermaid-svg-7qCaGEYz0Jyj9dYw .node circle,#mermaid-svg-7qCaGEYz0Jyj9dYw .node ellipse,#mermaid-svg-7qCaGEYz0Jyj9dYw .node polygon,#mermaid-svg-7qCaGEYz0Jyj9dYw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .node .label{text-align:center;}#mermaid-svg-7qCaGEYz0Jyj9dYw .node.clickable{cursor:pointer;}#mermaid-svg-7qCaGEYz0Jyj9dYw .arrowheadPath{fill:#333333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7qCaGEYz0Jyj9dYw .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7qCaGEYz0Jyj9dYw .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7qCaGEYz0Jyj9dYw .cluster text{fill:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw .cluster span{color:#333;}#mermaid-svg-7qCaGEYz0Jyj9dYw div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7qCaGEYz0Jyj9dYw :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 八大排序算法 插入排序 选择排序 交换排序 归并排序 非比较排序 直接插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序 归并排序 计数排序 超链接 插入排序 选择排序 交换排序 归并排序 非比较排序 一、排序的概念 1.1 排序的概念 排序:所谓排序就是使一串记录 按照其中的某个或某些关键字的大小递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次序保持不变即在原序列中r[i]r[j] 且r[i]在r[j]之前而在排序后的序列中r[i]仍在r[j]之前则称这种排序算法是稳定的;否则称为不稳定的。 内部排序:数据元素全部放在内存中的排序。 外部排序:数据元素太多不能同时放在内存中根据排序过程的要求不能在内外存之间移动数据的排序。 1.2 排序的应用 排序的目的通常是为了方便查找或者统计最多或者最少的重复次数。 1.游戏竞赛。 游戏规则是随机一组30张图片要求参加比赛的10人在30秒之内把图片按照从小到大顺序排序时间最少的获胜。 2.调查问卷。 在110000中随机生成N个数对于重复的数只保留一个不同的数对应着不同学生的学号再把这些数从小到大排序按顺序找同学调查。 3.颁发特等奖学金。 某个大学有n名学生每个人都有m门课按照综合成绩排名需要挑出最优秀的k位学生颁发特等奖学金。 二、直接插入排序 直接插入排序的基本思想 把待排序的内容记录并逐一与排序好的有序序列比较插入到有序序列中直到待排序列的记录全部插入完毕得到一个新的有序序列这就是直接插入排序 代码如下 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include time.h #include windows.h #define m 1000 void IsertSort(int* arr, int n) {int i;for (i 1; i n; i)//i为待排序的第一个数下标{int end i - 1;//end 为已排好序列的尾下标int tmp arr[i];//把待排序的第一个数存起来//遍历已排序列进行比较然后插入这里我进行从小到大排序while (end 0){if (arr[end] tmp)//如果前面的数大就把他往后移动一个{arr[end 1] arr[end];end--;}//否则就跳出elsebreak;arr[end 1] tmp;}}//打印排序后的数据for (i 0; i n; i){printf(%d , arr[i]);} } int main() {int head, end,arr[m];//srand(初始化时间)time(直接返回时间戳)srand((unsigned)time(NULL));head clock();for (int i 0; i m; i)arr[i] rand();//时间不停的变化每次产生不同的随机值IsertSort(arr,sizeof(arr)/sizeof(arr[0]));end clock();//排序需要花费的时间printf(\n%d\n , end - head);return 0; }直接插入排序的性能总结 1.元素集合越接近有序直接插入排序算法的时间效率越高。 2.时间复杂度O(N^2) 3.空间复杂度为O(1),它是一种稳定的排序算法 4.稳定性:稳定 三、希尔排序 希尔排序又叫缩小增量法。 希尔排序的基本思想 先选定一个整数然后把待排序的记录分成这个整数的组所有距离为这个整数的记录被分在同一个组并对每一个组内的记录进行排序。先预排序然后在插入排序。 代码如下 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include time.h #include stdlib.h #include Windows.h #define m 10000 SheelSort(int* arr, int n) {int gap 3;//多趟for(int j0;jgap; j)//每组进行插入排序for (int i j; i n - gap; i gap){//单趟int end i;int tmp arr[end gap];while (end 0){if (arr[end] tmp)//从大到小排序{arr[end gap] arr[end];end - gap;}elsebreak; }arr[end gap] tmp;} } int main() {int head, tail, i;int arr[m] {0};srand((unsigned)time(NULL));for (i 0; i m; i)arr[i] rand()%1000;head clock();SheelSort(arr, sizeof(arr) / sizeof(arr[0]));tail clock();printf(%d , tail - head);return 0; }效率如下 我们可以优化一下(减少一个循环但是效率还是差不多得而且代码更简洁) #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include time.h #include stdlib.h #include Windows.h #define m 10000 SheelSort_1(int* arr, int n) {int gap 3;//按顺序一组一组排序for (int i 0; i n - gap; i ){//单趟int end i;int tmp arr[end gap];while (end 0){if (arr[end] tmp)//从大到小排序{arr[end gap] arr[end];end - gap;}elsebreak;}arr[end gap] tmp;} } int main() {int head, tail, i;int arr[m] {0};srand((unsigned)time(NULL));for (i 0; i m; i)arr[i] rand()%1000;head clock();SheelSort_1(arr, sizeof(arr) / sizeof(arr[0]));tail clock();printf(%d , tail - head);return 0; }我们可以得知预排序的意义 1.gap越大大的数可以更快的到后面小的数可以更快到前面gap越大跳的越快越不接近有序。 2.gap越小大的小的数挪动越慢越接近有序。 3.gap 1就是直接插入排序。 但是我们不知道gap取什么值最好 我们在把代码变一变让gap无论是多少最后都等于gap 1.gap 1为预排序 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include time.h #include stdlib.h #include Windows.h #define m 10000 SheelSort_3(int* arr, int n) {int gap n;while(gap 1)//先预排序预排序结束后直接插入排序{gapgap/31;//gapgap/2;//按顺序一组一组排序for (int i 0; i n - gap; i ){//单趟int end i;int tmp arr[end gap];while (end 0){if (arr[end] tmp)//从大到小排序{arr[end gap] arr[end];end - gap;}elsebreak;}arr[end gap] tmp;}} } int main() {int head, tail, i;int arr[m] {0};srand((unsigned)time(NULL));for (i 0; i m; i)arr[i] rand()%1000;head clock();SheelSort_3(arr, sizeof(arr) / sizeof(arr[0]));tail clock();printf(%d , tail - head);return 0; }计算它的时间复杂度 1.gap很大时gapn / 31,可分为n/3组数据每组3个元素每组最坏的比较次数为3次所以一共n / 3 * 3次。 2.gap很小时gap1每组1个元素很接近有序间距为gap的这些数据数据往后挪动的次数n。 3.gap很大时n / 9个组9个元素每组最坏比较36次。12……8间距为gap的这些数据。合计挪动数据n / 9* 364n次 4.外面那个循环运算了log3^N次 总结合计n / gap组每组gap个每组插入123……gap。合计1gap) * gap / 2 时间复杂度O(N^1.3)最好情况 稳定性不稳定 四、排序算法复杂度及稳定性分析 如图 表格
http://www.w-s-a.com/news/832375/

相关文章:

  • 网站备案认领杭州网页设计公司招聘
  • 易签到网站开发设计做网站运营有前途吗
  • 南通网站建设心得2023必考十大时政热点
  • 苍溪建设局网站公建设计网站
  • 九歌人工智能诗歌写作网站电子商务网站建设项目书
  • 做外贸的经常浏览的三个网站律师做哪个网站好
  • 中国公路建设招标网站长沙大型网站建设公司
  • 沈阳企业网站模板建站注册电子邮箱免费注册
  • 如何做简洁网站设计企业网站排名优化方案
  • 东莞网站建设服务商做触屏网站
  • 外国网站代理音乐网站建设
  • 珠江网站建设广安广告公司
  • 高端创意网站建设网页制作咨询公司
  • 网站建设及发布的流程图wordpress文章摘要显示
  • 淮北网站网站建设省好多会员app
  • 如何查看网站的更新频率网站图片要求
  • 网站设计公司收费标准wordpress修改文章链接
  • 镇江网站建设公司网站关键词密度怎么计算的
  • c 网站开发公司的网站的设计
  • 网站建设多长时间能学会做网站猫要做端口映射吗
  • 新手做网站视频网页设计期末作品要求
  • 做网站用户充值提现郑州高端模板建站
  • 运城做网站方式方法网站改版完成
  • 上海建设网站制作东西湖建设局网站
  • 建设购物网站课程设计建设部领导干部官方网站
  • 沈阳企业制作网站北京两学一做网站
  • 郑州做营销型网站手机网站建设多少钱一个
  • 小说类网站程序外贸商城 wordpress
  • 喀什百度做网站多少钱wordpress 用户介绍
  • 专门做任务的网站手机端网站重构