第一次听着几个的时候,感觉就是老哥你是来闹的吗 后来仔细看了一下 我靠 天才啊,好吧 其实也就是听着挺好的 但是实际应用的话 还是挺多坑的 一、睡眠排序 二、面条排序 首先去买一捆面,是意面挂面还是手擀面请按个人口味决定,最好是硬 ...
介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下 思考一下这些算法失败在哪里,又是否存在一些好的地方 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 我们知道sleep方法可以让一个线程睡眠s毫秒,如果需要对一个有n个数的数列进行排序,我们何不为每个数创建一个线程,然后让每个线程都睡眠该数的时间,那么对于越小的数,其睡眠时间越短,越大的数,其睡眠时间越长,最后 ...
2019-01-01 19:09 2 7769 推荐指数:
第一次听着几个的时候,感觉就是老哥你是来闹的吗 后来仔细看了一下 我靠 天才啊,好吧 其实也就是听着挺好的 但是实际应用的话 还是挺多坑的 一、睡眠排序 二、面条排序 首先去买一捆面,是意面挂面还是手擀面请按个人口味决定,最好是硬 ...
这期博客我主要想聊一聊一个没有什么实用价值的排序算法。它的时间复杂度已经超出现有已知任何其他的排序算法,同时,也低于现有任何已知的其他排序算法。它就是猴子算法。 相信在座各位都知道一个无限猴子定理,这个定理的内容就是:让一只猴子在电脑上疯狂的随机打字,只要时间足够 ...
基本思想 把一个无序的数组进行乱排序,然后看其是否会有序,有可能一次之后就有序了,也有可能很多次后依然无序。 最佳情况 \(O(n)\),平均 \(O(n*n!)\),最坏可执行直到世界的尽头。 猴子排序基于无限猴子定理:无限猴子定理是数学概率 ...
睡眠排序算法是一种比较另类有趣的排序算法,其核心思想与CPU调度机制相关,是通过多线程让每一个数据元素睡眠一定规律的时间,睡眠时间要和自身数据大小存在一定的规律,睡眠时间短的先进行输出,睡眠长的后输出,从而实现数据有序输出。 存在缺点: ①若睡眠时间之间相差很小时,容易出现误差 ...
记录一下几种排序: One:桶排序 桶排序:例如需要排序数的范围是0~n,那你则需要申请n+1一个变量,也就是说要写成int a[n+1]。应为我们需要用n+1个“桶”来存储0~n每一个数出现的次数。 即便只给你5个数进行排序(例如这五个数是1、2100000、12358、6546 ...
冒泡排序: 快速排序: 选择排序:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。 插入排序:已排序+未排序两部分,从已排序后面找一个值,插入到已排序,依次下去 ...
插入排序 步骤: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 ...
桶排序是一种效率很高的排序算法,它的时间复杂度为O(n),但桶排序有一定的限制,只有当待排序序列的元素为0到某一确定取值范围的整数时才适用,典型的例子比如成绩的排序等。 算法思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列 ...