美文网首页算法
5.休眠排序

5.休眠排序

作者: 发条家的橙子 | 来源:发表于2019-08-18 00:05 被阅读0次

原理:将需要排序的数组元素大小转化为相应的休眠时间,同时加载到sleep中,按大小打印从而实现排序。

package main

import (
    "time"
    "fmt"
)

var flag bool
var container chan bool
var count  = 0

func main()  {
    var array[]int = []int{0, 8, 1, 5, 9}
    flag = true
    container = make(chan bool, len(array)) // 5个管道
    for i:=0; i<len(array); i++ {
        go toSleep(array[i])
    }
    go listen(len(array))
    for flag { // 等待打印完成结束主程序
        time.Sleep(1 * time.Millisecond)
    }
}

// 监听程序,打印完将flage变为false,结束主函数等待
func listen(size int)  {
    for flag{
        select {
        case <- container:
            count++
            if count >= size { // 排序打印完成退出
                flag = false
                break
            }
        }
    }
}

// 休眠打印
func toSleep(data int)  {
    time.Sleep(time.Duration(data) * time.Second) // 休眠
    fmt.Println(data) // 打印休眠的秒数
    container <- true
}

相关文章

  • 5.休眠排序

    原理:将需要排序的数组元素大小转化为相应的休眠时间,同时加载到sleep中,按大小打印从而实现排序。

  • 休眠排序

  • 休眠排序

  • Python排序方法

    1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快速排序

  • 排序方法

    1.选择排序 2.插入排序 3.冒泡排序 归并排序归并排序5.快速排序快速排序

  • Java中排序方法整理

    1.插入排序: 2.shell排序 3.选择排序 4.堆排序 5.归并排序 6.快速排序

  • js几种排序方式

    1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.归并排序 6.快速排序

  • PHP的四种排序方式

    PHP的四种排序方式 1.冒泡排序 2.插入排序 3.快速排序 5.选择排序

  • 常用的排序算法

    1. 冒泡排序: 2.快速排序法 3.插入排序法 4.选择排序法 5.归并排序法

  • 前端经典八大算法

    1. 冒泡排序 2. 插入排序 3. 快速排序 4. 归并排序 5. 希尔排序 6. 堆排序[https://ww...

网友评论

    本文标题:5.休眠排序

    本文链接:https://www.haomeiwen.com/subject/hnylsctx.html