![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
nepu_bin
前方的路没有答案,只有走着走着才有了答案
展开
-
最小K个数设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
力扣面试题 17.14. 最小K个数 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例: 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 提示:数组内的数输出顺序可以不同。 0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr)) 使用堆排序 使用原数组的前k个元素创建一个最大堆,剩余元素与最大堆的首元素比较,若较之更小,则与之替换,遍历后就可以得到原数组原创 2021-01-22 18:21:25 · 858 阅读 · 0 评论 -
排序算法:冒泡、选择、插入、希尔、堆排、桶排、快排、归并
#include <iostream> #include <vector> #include <string> #include <cstdlib> #include <time.h> using namespace std; class Sort { public: template<class T> void BubbleSort(T* vec,int n) { int flag = 0;//标记法判断是否发生 交换原创 2021-01-19 19:22:07 · 1295 阅读 · 4 评论 -
冒泡排序法初级优化(C语言&&C++)
冒泡排序整体思路: 排序优化:当一趟冒泡排序完毕之后,并未发生任何交换,此时我们可以直接结束循环,提高算法效率; C语言版: #include <stdio.h> void BubbleSort() { int a[5],i=0,j=0,flag=0,t=0; for (i = 0; i < 5; i++) //数组输入 scanf("%d", &a[i]); for (i = 0; i < 4; i++) { flag = 0; for(j=0原创 2021-01-17 11:50:49 · 270 阅读 · 0 评论