Вставка сортировки с помощью Go - PullRequest
0 голосов
/ 15 мая 2018

Мне трудно создать произвольную вставку значения в Go, мне нужно сделать 10 тестов с 1000 числами, затем 10 тестов с 5000 номерами, затем 10 тестов с 10000 номерами, затем 10 тестов с 15000 ... до 50000

Я сделал код с функцией и другой код без функции, а 2 неверны

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    var vetor [50000]int
    for k := 1; k <= 10; {
        k := (5 ^ k) * 1000
        for i := 1000; i < 50000; {
            vetor[i] = rand.Intn(1000)
            fmt.Print(vetor[i], ",")
        }
        start := time.Now()
        n := len(vetor)
        if n < 2 {
            return
        }
        for i := 1; i < n; i++ {
            for j := i - 1; j >= 0; j-- {
                if (vetor)[j] > (vetor)[j+1] {
                    (vetor)[j], (vetor)[j+1] = (vetor)[j+1], (vetor)[j]
                } else {
                    break
                }
            }
        }
        t := time.Now()
        decorrido := t.Sub(start)
    }
}

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func insertion(array *[]int) {
    n := len(*array)
    if n < 2 {
        return
    }
    for i := 1; i < n; i++ {
        for j := i - 1; j >= 0; j-- {
            if (*array)[j] > (*array)[j+1] {
                (*array)[j], (*array)[j+1] = (*array)[j+1], (*array)[j]
            } else {
                break
            }
        }
    }
}

func main() {
    var vetor [50000]int
    for k := 1; k <= 10; {
        k := (5 ^ k) * 1000
        for i := 1000; i < 50000; {
            vetor[i] = rand.Intn(1000)
            fmt.Print(vetor[i], ",")
        }
        start := time.Now()
        insertion(&vetor)
        t := time.Now()
        decorrido := t.Sub(start)
    }
}

Мне также нужно рассчитать время выполнения для всех тестов и вычесть средние значения из всех 10 результатов

...