c语言的排序
2026/8/27 9:10:43 网站建设 项目流程

今天我想分享c语言中排序的三种基础方法,常用于数组,三种方法分别为:冒泡排序,选择排序和插入排序;

1.首先是冒泡排序,对我来说冒泡排序就是数组每两个相邻元素(成员)之间的相互转换的过程;

(1).定义一个自定义函数arr;

(2).定义一个num的数组,元素个数为6;

(3).定义一个int类型的len,来记录数组元素个数;//sizeof()是读取括号里的字节数量;

如图1:

输入:2,5,7,9,4,2后运行的结果:

如图2:

可以看到结果是升序的,补充一点,如果让图1的第5行代码的>(大于)变<(小于)就是降序了;

2.选择排序,顾名思义,对我来说就是在数组中选择两个元素(成员)进行交换;

(1)如果题目要求升序,就定义一个最小值int mn,(不要让mn去等于数组元素的值,而是让mn去做数组元素的下标);

(2)自定义一个函数arr;

输入:3,5,7,9,3,9后运行的结果:

如图4:

可以看出结果也是升序,第6行的小于换大于就是降序了,不过定义的int mn改成int mx就更好了;

3.插入排序,就是把一个数组分为两排,前排为有序元素,后排为无序元素,通过for循环依次为前排的有序元素添加成员;

(1)定义一个自定义函数arr;

(2) 定义一个int t来记录最开始有序后面的值(无序的);

如图5:

运行后的结果为:

如图6:

总结:每个不同的排序方式有不同的特点,其稳定性是插入排序与冒泡排序比选择排序要好很多的,补充一点,也可以用c标准通用工具库的头文件,可用调用qsort()来自定义int类型的参数指针来排序,在代码上会更快点,如图7的第5行到第9行与第25行:

图7:

只有选择排序无论什么情况都是O(n^2),三者唯一不稳定的是:简单选择排序,冒泡的标志性行为:比较相邻成员, 插入排序:接近有序性能最优。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询