不知道大家知道这个算法没有,就是靠睡觉完成排序的。

比如数字1 4 3,第一个数字1的时候,创建一个线程,然后让线程休眠1个时间单位,依次是 4 和 3个单位。

因为睡眠的时间不同,线程醒的时间也不同。3会比4先醒过来,这就完成了简单的排序。

如果在面试的时候,你想不起冒泡,想不起归并,也想不起快排,就偷偷懒,来一个睡觉也可以的排序算法试试。

不过这个算法的性能堪称史上最差,千万不要用在项目里面,被打的话,博主是不会负责医药费的哦。

我写的简单排序代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>#define MAX 10void *my_thread(void *arg){int tmp = *(int*)arg;usleep(tmp*1000);printf("%d ",tmp);
}int main()
{int a[MAX] = {1,2,5,6,2,8,0,3,10,4};int j = 0;pthread_t thid[MAX];for(j = 0;j<MAX;j++){printf("%d ",a[j]);}printf("\n");for(j = 0;j<MAX;j++){pthread_create(&thid[j],NULL,(void*)my_thread,&a[j]);}for(j = 0;j<MAX;j++){pthread_join(thid[j],NULL);}printf("\n");return 0;
}

代码输出:


最后,如果觉得不错,大家顺手点个赞,转发就是对我最大的鼓励和支持!

长按识别二维码关注公众号

糟糕的C语言睡眠排序算法相关推荐

  1. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  2. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

  3. C语言八大排序算法,附动图和详细代码解释!

    文章来源:电子工程专辑.C语言与程序设计.竹雨听闲 一.前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二. ...

  4. 硬核!C语言八大排序算法,附动图和详细代码解释!

    来源 :C语言与程序设计.竹雨听闲等 一 前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二 八大排序算法 ...

  5. 函数c语言桶排算法,C语言基本排序算法之桶式排序实例

    本文实例讲述了C语言基本排序算法之桶式排序.分享给大家供大家参考,具体如下: 桶式排序是对一个有n个整型元素的数组a[n],其中对任意i,0 <= a[i] <= m的特殊排序算法. 可以 ...

  6. 序列划分c语言,一篇“get”C语言八大排序算法

    如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二.八大排序算法 排序算法作为数据结构的重要部分,系统地学习一下是 ...

  7. C语言 选择排序算法

    C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...

  8. c语言选择排序法程序设计,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  9. c语言选择排序详解及代码,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

最新文章

  1. iptables从入门到精通
  2. 简洁强大的JavaWeb框架Blade
  3. Eclipse中的Tomcat:6个流行的“如何做”问题
  4. InfluxDB(官方使用说明)
  5. python2.7升级到python3.6注意事项
  6. diy 多路监控_如何通过此DIY设置监控空气质量
  7. 转:apache+python+mod_python+django 编译安装指南
  8. sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度
  9. 捉取映客直播数据 20171121可用
  10. yolo算法部分简单理解
  11. Ruby语言快速入门
  12. 微信小程序识别图片并提取文字_微信小程序图片上传(文字识别)
  13. UVALive3713 Astronauts
  14. 【122天】尚学堂高琪Java300集视频精华笔记(43-46)
  15. 陈一舟:以前创业占地就行 现在要做游击队
  16. 收获一篇好文章,与大家共享
  17. java中各种加密算法的实践应用
  18. STM32F105 实现USB BULK传输
  19. surface pro3 禁用触屏方法
  20. 【论文笔记】 知识图谱 之 TransE算法(Translating Embedding)

热门文章

  1. 精述IBM的MQTT协议和MQTT-S协议
  2. OC之ARC环境中的循环strong问题
  3. (原创)优酷androidclient 下载中 bug 解决
  4. jquery-autocomplete学习(转)
  5. 前端笔试题小结(一)
  6. 真格量化——依托均线购买期权策略
  7. Python的from import和import的区别
  8. linux系统优化思路
  9. 手写数字识别中多元分类原理_广告行业中那些趣事系列:从理论到实战BERT知识蒸馏...
  10. python哪个版本支持xp_windows支持哪个版本的python