排序类
啊港在这
这个作者很懒,什么都没留下…
展开
-
计数排序C++(考虑周全版本)
** 计数排序 ** 注:经测试代码有效 #include <iostream> #include <stdlib.h> using namespace std; int sort_num(int *nums, int len, int m_nums) { int arr[12]; int *count = (int *)malloc(sizeof(int)*(m_nums)); memset(count, 0, sizeof(count)*m_nums); for (i原创 2021-08-10 23:50:06 · 101 阅读 · 0 评论 -
计数排序 C++
计数排序适用的应用场景: 量大但是范围小(全省高考成绩、某大型企业数万名员工年龄的排序) 且知道范围(例如成绩满分和零分 年龄0岁到150岁) 方法: 1、创建另外一个数组用于*计数***,数组的大小则为数值范围加1 (0~100)则数组长度为100-0+1 = 101; 因为我们要用数组的索引值(下标)作为每一个数值所对应的“家”**斜体样式 正好从0开始到100; 2、接着我们遍历原数组,每次读到与计数数组的下标值一样的数值时,则对计数数组改下标所对应的数组值加1(count[ nums[0] ]+原创 2021-08-08 23:59:22 · 566 阅读 · 0 评论 -
快速排序 vs 冒泡排序
快速排序 vs 冒泡排序 以升序排列为例:将第一个元素和第二个元素比较,若前者大于后者,则交换两者的位置,再将第二个元素与第三个元素比较,若前者大于后者则交换两者位置,以此类推直到倒数第二个元素与最后一个元素比较,若前者大于后者,则交换两者位置。这样一轮比较下来将会把序列中最大的元素移至序列末尾,这样就安排好了最大数的位置,接下来只需对剩下的(n-1)个元素,重复上述操作即可。 // 两个for循环 + 数据交换函数 形参必须包括数组名或指向数组第一个元素的指针 以及 **数组长度**(数组长度不可在函数原创 2021-07-04 17:28:23 · 178 阅读 · 0 评论