摘要: 有这样一道排序题:数组里有20个随机数,取值范围为从0到10,要求用最快的速度把这20个整数从小到大进行排序。 第一时间你可能会想使用快速排序,因为快排的时间复杂度只有O(nlogn)。但是这种方法还是不够快,有没有比O(nlogn)更快的排序方法呢?你可能会有疑问:O(nlogn)已经是最快的排序 阅读全文
posted @ 2020-03-31 14:16 Swithun 阅读(201) 评论(0) 推荐(0)
摘要: 这个主要是通过二进制来生成子集,比如三个元素总共二进制数有2^3个,然后通过0 2^3中每个数和1进行位于然后得出哪位有1最后就可以得出每个子集 void print_subset(int n,int s) 2 { 3 for(int i = 0;i<n;i++) 4 { 5 //cout << s 阅读全文
posted @ 2020-03-31 12:22 Swithun 阅读(787) 评论(0) 推荐(0)
摘要: 首先介绍:邻位互换算法 原理:首先会先给数据排序(从小到大),然后给这些数据赋上移动数据,比如最开始都给他们赋值为-1表示能向左移,其实在这里只用一个新数组来存储移位数据就可以了,比如我们现在3是可以左移的,3的位置是2,然后通过去找移位数组里面的值,发现对于位置2的值为-1,只用拿2-1就可以得到 阅读全文
posted @ 2020-03-31 11:11 Swithun 阅读(256) 评论(0) 推荐(0)