随笔分类 -  排序

摘要:题目链接:P1923 Describe: 输入 nnn(n<5000000n<5000000n<5000000 且 nnn 为奇数) 个数字 ai(0<ai<109)a_i(0<a_i<10^9)ai​(0<ai​<109) ,输出这些数字的第 kkk 小的数。最小的数是第 0 小。 Input: 阅读全文
posted @ 2020-09-04 09:38 不敢说的梦 阅读(297) 评论(0) 推荐(0)
摘要:快速排序: 有点归并排序的思想,分而治之。主要分为主元选取,子集划分两个阶段。主元选取有点讲究,不同的主元会导致运算效率不同,并且排序数量的大小也会影响效率,如果排序数为100以下,有时插入排序要比快速排序效率更高,此时可以设定一个阈值来确定用哪个排序算法。 示例代码: 此处为了方便,将要排序的最右 阅读全文
posted @ 2020-08-21 13:43 不敢说的梦 阅读(171) 评论(0) 推荐(0)
摘要:归并排序: 顾名思义,就是将要排序的一串数一分为二,递归的去排序左边和右边的数,最终合并到一起,以从小到大排序为例 参考代码: 1 // Merge sort 2 #include <iostream> 3 using namespace std; 4 void mergenum(int a[], 阅读全文
posted @ 2020-08-21 13:21 不敢说的梦 阅读(163) 评论(0) 推荐(0)
摘要:注:所有排序以从小到大排序为例,且函数接口统一定义为:void sortname_sort(int a[], int n) 简单排序: 简单排序有三种:选择排序,冒泡排序,插入排序。其中选择排序非常简单,就是从要排序的数列里找到最小的放在最前面,以此类推,最终完成排序,代码省略。 冒泡排序: 思路是 阅读全文
posted @ 2020-08-21 11:32 不敢说的梦 阅读(212) 评论(0) 推荐(0)