介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下、思考一下这些算法失败在哪里,又是否存在一些好的地方? 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 -- 我们知道sleep方法可以让一个线程睡眠s毫秒,如果需要对一个有n个数的数列进行排序,我们何不 ...
第一次听着几个的时候,感觉就是老哥你是来闹的吗 后来仔细看了一下 我靠 天才啊,好吧 其实也就是听着挺好的 但是实际应用的话 还是挺多坑的 一 睡眠排序 二 面条排序 首先去买一捆面,是意面挂面还是手擀面请按个人口味决定,最好是硬的。找到数组中最大和最小的两个数 O n ,让最大的数对应一根很长的面条,最小的数对应一根很短的面条。重新遍历数组,每遇到一个数,就取一根面条,把它切成这个数对应的长度, ...
2018-07-27 09:53 0 3033 推荐指数:
介绍几个不实用的排序算法,一来可以在学习时增加一些乐趣,放松一下自己,二来可以学习一下、思考一下这些算法失败在哪里,又是否存在一些好的地方? 睡眠排序 这是一个思想比较简单,脑洞巨大的算法 -- 我们知道sleep方法可以让一个线程睡眠s毫秒,如果需要对一个有n个数的数列进行排序,我们何不 ...
基本思想 把一个无序的数组进行乱排序,然后看其是否会有序,有可能一次之后就有序了,也有可能很多次后依然无序。 最佳情况 \(O(n)\),平均 \(O(n*n!)\),最坏可执行直到世界的尽头。 猴子排序基于无限猴子定理:无限猴子定理是数学概率 ...
这期博客我主要想聊一聊一个没有什么实用价值的排序算法。它的时间复杂度已经超出现有已知任何其他的排序算法,同时,也低于现有任何已知的其他排序算法。它就是猴子算法。 相信在座各位都知道一个无限猴子定理,这个定理的内容就是:让一只猴子在电脑上疯狂的随机打字,只要时间足够 ...
睡眠排序算法是一种比较另类有趣的排序算法,其核心思想与CPU调度机制相关,是通过多线程让每一个数据元素睡眠一定规律的时间,睡眠时间要和自身数据大小存在一定的规律,睡眠时间短的先进行输出,睡眠长的后输出,从而实现数据有序输出。 存在缺点: ①若睡眠时间之间相差很小时,容易出现误差 ...
记录一下几种排序: One:桶排序 桶排序:例如需要排序数的范围是0~n,那你则需要申请n+1一个变量,也就是说要写成int a[n+1]。应为我们需要用n+1个“桶”来存储0~n每一个数出现的次数。 即便只给你5个数进行排序(例如这五个数是1、2100000、12358、6546 ...
冒泡排序: 快速排序: 选择排序:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。 插入排序:已排序+未排序两部分,从已排序后面找一个值,插入到已排序,依次下去 ...
今天看到一个奇葩排序算法,睡眠排序法。 是不是感觉很神奇呢,但是这个算法还是有行不通的地方,如负数;数值相近的时候,可能会有误差;输入数据很多时,这些线程不能看作是同时启动。 ...
众所周知,猴子排序打破了排序算法$O(n\log{n})$的桎梏(雾),具体的话,显然最好情况一次成功就是$O(n)$,最坏情况那就$O(+\infty)$了。期望是多少呢?让我来推导一番(逃)。 首先,设序列长度为$n$,每次打乱序列和检测是否有序为$O(n)$,每次成功的概率 ...