最近一段时间,微信群被“老板有毛病吧,写完排序就让我走”这个段子刷屏了  这个排序,其实很早之前就看到了,还记得初见此排序,惊为天人,见惯了那些冒泡、快排,睡眠排序简直是排序界一股清流啊!当时还准备在部门技术分享的时候,分享这个,但是,单单一个睡眠排序,无法支撑一场分享,才作罢。  其实,我还是很敬佩想出睡眠排序的那位人才的,因为一般情况,想到排序,大多数人都跳不出比较排序和分配排序的局限,睡眠
内容整编自多个网友的文章,外加上自己的一些感想,链接太多就不一一列举了:)1. 睡眠排序(Sleep Sort)睡眠排序也称为硬件排序, 充分利用硬件计时器的资源实现拟态算法(逃这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,睡眠排序的主要逻辑是构造n个线程,它们和这n个数一一对应。初始化后,线程们开始睡眠,等到对应的那么多个时间单位后各自醒来,然后输出对应的数。这样最小的数对应的
多线程并发排序使得排序效率更高,设计者脑洞真大。。。排序算法一般是力求兼顾时间和空间的平衡。当数值太小时,误差太大,睡眠的时间不比输出的时间少,就会存在不正确的输出结果。public class SortUtil{ public static void main(String[] args){ int[] nums=new int[]{1,2,34,4,45,56};
转载 2023-06-29 20:35:19
162阅读
基本思想 睡眠排序算法是一种比较另类有趣的排序算法,其核心思想与多线程、CPU调度机制相关,是通过多线程让每一个数据元素睡眠一定的时间,睡眠时间要和自身数据大小存在一定的规律,睡眠时间短的先进行输出,睡眠时间长的后输出,从而实现数据有序输出。 缺陷 (1)当数据很大时,会睡眠很长时间,程序运行时间较 ...
转载 2021-07-11 22:55:00
1309阅读
2评论
先上代码: const A = [3, 1, 2, 5, 4, 0, 10] const res = [] A.forEach(n => setTimeout(() => res.push(n), n*10)) setTimeout(function(){console.log(res)}, 100
转载 2020-01-15 09:12:00
150阅读
2评论
在这篇博文中,我们将讨论“python睡眠代码”相关问题的解决方法。这个问题通常指的是在某些情况下,Python代码会意外地“睡眠”,导致程序执行的延迟或者阻塞。这不仅对开发者的调试造成困扰,更可能在生产环境中影响用户体验和业务流畅度。本文将通过对不同方面的分析和解决方法,帮助你更好地处理这一问题。 > 引用块(用户原始反馈) > "我们在使用Python的某些脚本时,发现它们有时会毫无征兆
原创 6月前
33阅读
package main import ( "fmt" "math/rand" "sync" "time" ) func Sleep(arr ...int) (orders []int) { var wg sync.WaitGroup ch := make(chan int, len(arr)) f ...
转载 2021-07-21 18:08:00
93阅读
2评论
## 睡眠排序:用Java实现的一种特殊排序算法 睡眠排序(Sleep Sort)是一种特殊的排序算法,通过多线程和睡眠的方式对一组数列进行排序。这种算法的原理非常简单,但也因为其独特性而备受关注。 ### 算法原理 睡眠排序的基本原理是创建多个线程,每个线程负责输出一个数值,并根据数值的大小设置相应的睡眠时间。当所有线程执行完毕后,输出的数值就是按升序排列的。 下面是睡眠排序的基本步骤:
原创 2023-08-09 03:42:05
313阅读
这是一种很神经的算法,没有十年脑血栓想不出来
原创 2022-03-28 16:12:23
174阅读
本篇博客介绍一种搞笑的排序算法。我们知道,普通的排序算法中,的时间复杂度效率已经算是很高了。我们今天来看一个时间复杂度为的排序算法。睡眠排序:顾名思义,就是利用睡眠来实现的排序算法,基本思路如下:我们为数组中的每个元素都开启一个线程;然后让该线程休眠元素大小的时间,元素值小的会先醒,元素值大的会后醒;借助睡眠时间的不同来完成排序。下面我们来看代码。C++版:#include <iostrea
内容整编自多个网友的文章,外加上自己的一些感想,链接太多就不一一列举了:)1. 睡眠排序(Sleep Sort)睡眠排序也称为硬件排序, 充分利用硬件计时器的资源实现拟态算法(逃这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,睡眠排序的主要逻辑是构造n个线程,它们和这n个数一一对应。初始化后,线程们开始睡眠,等到对应的那么多个时间单位后各自醒来,然后输出对应的数。这...
原创 2018-11-23 16:41:33
534阅读
内容整编自多个网友的文章,外加上自己的一些感想,链接太多就不一一列举了:)1. 睡眠排序(Sleep Sort)睡眠排序也称为硬件排序, 充分利用硬件计时器的资源实现拟态算法(逃这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,睡眠排序的主要逻辑是构造n个线程,它们和这n个数一一对应。初始化后,线程们开始睡眠,等到对应的那么多个时间单位后各自醒来,然后输出对应的数。这...
原创 2022-03-03 17:42:24
103阅读
位于 time 模块中的 sleep(secs) 函数,可以实现令当前执行的线程暂停 secs 秒后再继续执行。所谓暂停,即令当前线程进入阻塞状态,当达到 sleep() 函数规定的时间后,再由阻塞状态转为就绪状态,等待 CPU 调度。sleep() 函数位于 time 模块中,因此在使用前,需先引入 time 模块。 sleep() 函数的语法规则如下所示:time.sleep(secs) 其中
转载 2023-05-28 18:13:20
91阅读
1、线程的优先级 见第3点(yield)中的描述。 2、睡眠 Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。当线程睡眠时,它入睡在某个地方,在苏醒之前不会返回到可运行状态。当睡眠时间到期,则返回到可运行状态。 线程睡眠的原因:线程执行太快,或
转载 2023-11-14 13:40:17
101阅读
一.引言刷短视频看到有博主提到了睡眠排序这种排序方式,听了之后感觉很有意思,原文使用 java 进行编码,这里使用 scala 重新写一遍,顺带复习一下线程使用和线程安全相关的知识。二.睡眠排序1.实现思路给定正整数数组 nums,针对数组中每一个 num 启动一个 thread,thread 内执行 Thread.sleep() 方法随后返回 num,这样 nums 的大小和 sleep 时间绑
线程调度方法1.sleep方法 sleep方法在睡眠的时候, 是会释放cpu , 睡眠期间不会抢cpu的 即使睡眠期间没有其他线程占用cpu, 此线程也需要等到睡醒才去抢占cpupublic class Test { public static void main(String[] args) { MyThread t = new MyThread(); t.start();
转载 2024-07-01 22:30:29
84阅读
# Java睡眠排序法 ## 简介 睡眠排序法(Sleep Sort)是一种基于多线程的排序算法,它利用线程的睡眠时间来实现排序。虽然该算法并不实用,但它却引起了广泛的讨论和关注,因为它展示了多线程和时间管理的概念。 睡眠排序法的原理非常简单:对于一个待排序的数组,我们创建与数组长度相等的线程,并为每个元素创建一个线程。然后,我们通过设置每个线程的睡眠时间来按照数组中的元素大小进行排序。具体
原创 2023-11-13 12:37:29
100阅读
这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,这个网址如下:http://dis.4chan.org/read/prog/1295544154大家有兴趣的可以看看。虽然使用价值不是很高,但是能找到这么一个方法,成为天才也不为过。它的基本思想是,主要是根据CPU的调度算法实现的,对一组数据进行排序,不能存在负数值,这个数是多大,那么就在线程里睡眠它的10倍再加10,不是睡眠和它的数值一样大的原因是,当数值太小时,误差太大,睡眠的时间不比输出的时间少,那么就会存在不正确的输出结果。 下面写几个此排序算法的版本#!/bin/bash functionf(){ sleep" Read More
转载 2013-07-28 22:01:00
299阅读
这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,这个网址如下:http://dis.4chan.org/read/prog/1295544154大家有兴趣的可以看看。 虽然使用价值不是很高,但是能找到这么一个方法,成为天才也不为过。 它的基本思想是,主要是根据CPU的调度算法实现的,对一组数据进行排序,不能存在负数值,这个数是多大,那么就在线程里睡眠它的10倍再加10,不是睡眠
转载 2013-07-27 20:25:00
636阅读
2评论
前言博主今天跟大家聊一聊睡眠排序,皮一下很开心!没听过睡眠排序?不要觉得丢脸,我也是刚知道的!说起排序,大家肯定只知道快排,冒泡排序等!然而今天看到一种睡眠排序,简直是颠覆三观,毁天灭地,确实是达到排序的目的了!而且思路清奇,着实可以拿出来分享分享!睡眠排序假设,入参是一个乱序的数组!那如何进行排序输出呢?步骤如下:step1 循环数组step2 取出整数20,将整数传入线程,new一个线程,不启
转载 2023-09-17 13:23:30
122阅读
  • 1
  • 2
  • 3
  • 4
  • 5