糟糕的C语言睡眠排序算法
不知道大家知道这个算法没有,就是靠睡觉完成排序的。
比如数字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语言睡眠排序算法相关推荐
- C语言基础排序算法-选择排序
C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...
- C语言基础排序算法-冒泡排序
C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...
- C语言八大排序算法,附动图和详细代码解释!
文章来源:电子工程专辑.C语言与程序设计.竹雨听闲 一.前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二. ...
- 硬核!C语言八大排序算法,附动图和详细代码解释!
来源 :C语言与程序设计.竹雨听闲等 一 前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二 八大排序算法 ...
- 函数c语言桶排算法,C语言基本排序算法之桶式排序实例
本文实例讲述了C语言基本排序算法之桶式排序.分享给大家供大家参考,具体如下: 桶式排序是对一个有n个整型元素的数组a[n],其中对任意i,0 <= a[i] <= m的特殊排序算法. 可以 ...
- 序列划分c语言,一篇“get”C语言八大排序算法
如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二.八大排序算法 排序算法作为数据结构的重要部分,系统地学习一下是 ...
- C语言 选择排序算法
C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int ...
- c语言选择排序法程序设计,C语言选择排序算法及实例代码
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...
- c语言选择排序详解及代码,C语言选择排序算法及实例代码
选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...
最新文章
- iptables从入门到精通
- 简洁强大的JavaWeb框架Blade
- Eclipse中的Tomcat:6个流行的“如何做”问题
- InfluxDB(官方使用说明)
- python2.7升级到python3.6注意事项
- diy 多路监控_如何通过此DIY设置监控空气质量
- 转:apache+python+mod_python+django 编译安装指南
- sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度
- 捉取映客直播数据 20171121可用
- yolo算法部分简单理解
- Ruby语言快速入门
- 微信小程序识别图片并提取文字_微信小程序图片上传(文字识别)
- UVALive3713 Astronauts
- 【122天】尚学堂高琪Java300集视频精华笔记(43-46)
- 陈一舟:以前创业占地就行 现在要做游击队
- 收获一篇好文章,与大家共享
- java中各种加密算法的实践应用
- STM32F105 实现USB BULK传输
- surface pro3 禁用触屏方法
- 【论文笔记】 知识图谱 之 TransE算法(Translating Embedding)