/* Created by vencent on 2008.8.29 *//* 本文件列出了各种排序方法1.插入排序1.1 一般插入排序 InsertSort(int* array, int length)1.2 折半插入排序 BinInsertSort(int* array, int length)1.3 希尔排序 ShellSort(int* array, int length)2.交换排序2.1 冒泡排序 BubbleSort(int* array, int length)2.2 快速排序 QuickSort(int* array, int length)3.选择排序3.1 一般选择排序 SelectSort(int* array, int length)3.2 堆排序 StackSort(int* array, int length)*/#include sort.h//排序算法的测试void TestSort(){int i;int array[10] {3,5,2,1,8,10,4,7,6,9};/*int * array;int i;array (int*)malloc(sizeof(int) * Len);for (i 0; i Len; i){array[i] Len - i;}*/HeapSort(array,10);printf(\nThe result :\n);for (i 0; i Len; i){printf(%d ,array[i]);}}//插入排序void InsertSort(int *array, int length){int i,j,k;int temp;for (i 1; i length; i){for(j 0; j i array[j] array[i]; j);temp array[i];for(k i ; k j ; k--){array[k] array[k-1];}array[j] temp;}}//折半插入排序void BinInsertSort(int *array, int length){int i,j,k;int temp;int low,high,mid;for (i 1; i length; i){low 0 ;high i-1;//一定要注意lowhigh这个条件while(low high || low high){mid (low high)/2;if(array[mid] array[i])high mid-1;elselow mid1;}j low ;temp array[i];for(k i ; k j ; k--){array[k] array[k-1];}array[j] temp;}}//冒泡排序void BubbleSort(int *array, int length){int i,j;int temp;for(i 0 ; i length - 1; i)for(j 1; j length - i; j){if(array[j] array[j-1]){temp array[j];array[j] array[j-1];array[j-1] temp;}}}//快速排序void QuickSort(int *array, int start, int end){int div;if(start end){div partition(array, start, end);QuickSort(array, start, div-1);QuickSort(array, div1, end);}}//快速排序分区int partition(int *array, int start, int end){int target;int low,high;target array[start];low start;high end;while(low high){while((array[high] target || array[high] target) (low high) ){high--;}array[low] array[high]; //此处low不能加1。while((array[low] target || array[high] target) ( low high ) ){low;}array[high] array[low]; //此处high不能减1。}array[low] target;return low;}//堆排序将堆看成是一棵完全二叉树存放在一维数组中//adjust()函数:假设初始堆已经有序现将最小的元素取出并用最后一个元素至于小堆的堆顶//重新调整堆使其重新调整成为一个小堆。void adjust(int *array, int start, int end){int j;int location start;int temp array[start];for(j start; 2 * (j 1) - 1 end 1; ){if(2 * (j 1) end 1 array[2 * (j 1) - 1] array[2 * (j 1)]){j 2 * (j 1);//右边元素偏小的话指向右边元素。}else{j 2 * (j 1) - 1;}if( temp array[j]) //注意此处为temp而不是array[location]{array[location] array[j];location j;}}array[location] temp;}//完整的堆排序过程void HeapSort(int *array, int length){int i,temp;//创建初始堆for( i (length-1-1)/2; i 0 || i 0; i--){adjust(array, i, length-1);}//不断调整堆来排序for( i length - 1; i 0 ; i--){temp array[i];array[i] array[0];array[0] temp;adjust(array, 0, i-1);}}
企业数字化 ERP 产品动态
相关推荐
STM32裸机移植FlashDB:嵌入式轻量级数据库KVDB实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:05:07
USB转串口设备节点消失?从物理层到系统层的完整排查指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:05:07
S7-200SMART GET/PUT通信实战:交换机选型与配置指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:05:07
基于Python的商品推荐系统毕设:从协同过滤到Flask Web服务实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:40:53
入侵检测源码复现:KDD99数据集与CNN模型评估指南 简介:这份基于Python机器学习的网络入侵检测系统源码,源自个人毕业设计项目,评审分达到98分,所有代码均经过严格调试可正常运行,主要面向计算机、自动化等相关专业的学生或从业者,尤其适合用作期末课程设计… · 2026/9/28 1:40:53
EDA版本管理实战:从嘉立创/立创版本陷阱到稳定交付 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:40:53
KiCAD+ngspice入门指南:用分压电路跑通SPICE仿真全流程 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:40:53
功能安全架构下的Hypervisor:混合关键性隔离设计实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:40:53
Chromatix 7 ISP调优实战:从模块原理到量产交付闭环 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 1:40:47
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25