首页 > 其他分享 >睡眠排序(整活向)

睡眠排序(整活向)

时间:2023-07-10 19:23:01浏览次数:30  
标签:睡眠 include 整活 int Sleep th 排序

刚学了一丢丢的c++多线程知识,想起来以前学排序算法时候听闻过的睡眠排序法,迫不及待实现一下

基本思路就是为每一个数据都创建一个线程,每一个线程中执行的任务就是睡眠(SLEEP)数据大小的时间,由于Sleep函数是单位是毫秒,为了拉开明显差距,睡眠数据大小乘100的时间

 1 #include<iostream>
 2 #include<vector>
 3 #include<thread>
 4 #include<string>
 5 #include<algorithm>
 6 #include<Windows.h>
 7 using namespace std;
 8 int main()
 9 {    
10     int B[5] = { 4,1,2,10,8 };
11     vector<int>A(B,B+5);
12     thread th[5];
13     for (int i = 0; i < A.size(); i++)
14     {
15         th[i] = thread([](int N){Sleep(N*100); cout << N << endl; },A[i]);
16     }
17     for (int i = 0; i < A.size(); i++)
18     {
19         th[i].join();
20     }
21     return 0;
22 }

运行后就可以看到控制台里由大到小的数字慢慢一个一个被打印出来

标签:睡眠,include,整活,int,Sleep,th,排序
From: https://www.cnblogs.com/CrescentWind/p/17542071.html

相关文章

  • 各位数字之和排序
    各位数字之和排序题目链接#include<stdio.h>intmain(){ intn; inta[10];//进行交换位置的原数组 intc[10];//可进行破坏的副数组 while(scanf("%d",&n)!=EOF){ intt; intb[10]={0};//进行循环清零,以防二次循环时破坏b数组的计数 if(n==0){ break; } ......
  • union和子查询中order by一起使用导致排序失效问题及解决
    转:https://www.jb51.net/article/271119.htmmysql版本:5.7Union的时候,如果子查询中有orderby可能到导致子查询的排序结果不符合预期原因:    可能是union和被msyql优化器优化导致的排序失效解决方法:    可以在子查询后面加上limit一个肯定大于查询数据量的数......
  • 3.归并排序
    publicstaticvoidmerge(int[]arr,intL,intM,intR){int[]help=newint[R-L+1];inti=0;intp1=L;intp2=M+1;while(p1<=M&&p2<=R){help[i++]=arr[p1]<=arr[p2]?arr[p1++]:arr[p2++];}while(p1&......
  • java练习-插入排序
    packagecom.example.ss_0203_array.test.test_0710;/***分析:*1、数组遍历找出第一个开始乱序的索引,默认此索引之后的数组是无序的:startIndex*2、遍历数组,内嵌遍历后面的无序数组,比较当前数值和无序数组中的数值,大于则交换两个索引的数值,遍历完成,则数值交换完成*/publicc......
  • 快速排序-第k个数
    题目给定一个长度为$n$的整数数列,以及一个整数$k$,请用快速选择算法求出数列从小到大排序后的第$k$个数。输入格式第一行包含两个整数$n$和$k$。第二行包含$n$个整数(所有整数均在$1∼109$范围内),表示整数数列。输出格式输出一个整数,表示数列的第$k$小数。数据......
  • 43. 排序算法
    一、什么是排序  排序也称排序算法,排序是将一组数组,依指定的顺序进行排列的过程。排序分为内部排序和外部排序两种。内部排序是指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序是指数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。二、冒......
  • 堆排序之前篇:关于堆
      1. 堆的定义和性质堆是一种特殊的数据结构,它是一颗完全二叉树,且满足以下性质:堆中某个节点的值总是不大于或不小于其父节点的值。如果父节点的值不大于其子节点的值,这样的堆称为最小堆;如果父节点的值不小于其子节点的值,这样的堆称为最大堆。堆可以用数组来存储,因为......
  • 记录拖动排序
    最近项目中要做一个拖动排序功能,首先想到的是之前项目中用过的antd自带的tree和table的拖动排序,但是只能在对应的组建里使用。这里用的是自定义组件,随意拖动排序,所以记录一下实现流程react-dndantd组件的拖动排序都是用的这个库,使用比较灵活,但是要配置的东西比较多,需求复杂时使......
  • Java版归并排序 演示代码(带注释)
    Code:importjava.util.Arrays;/***归并排序*/publicclassMergeSort{/***私有化*/privateMergeSort(){}/***归并排序的sort方法*@paramarr待排序数组*@param<E>可比较的元素*/publicstatic<Eex......
  • 排序 sorted
    l=sorted([36,5,-12,9,-21])print(l)'''[-21,-12,5,9,36]'''l=sorted([36,5,-12,9,-21],key=abs)print(l)'''[5,9,-12,-21,36]''' #按照元祖里的key的name首字母lis=[('Bob',......