87 lines
2.3 KiB
Go
87 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
"math/rand"
|
|
)
|
|
|
|
func main() {
|
|
longFunc()
|
|
}
|
|
|
|
func longFunc() {
|
|
// Создаем массив случайных чисел
|
|
nums := make([]int, 100)
|
|
for i := 0; i < len(nums); i++ {
|
|
nums[i] = rand.Intn(1000)
|
|
}
|
|
fmt.Println("Исходный массив:", nums)
|
|
|
|
// Выполняем сортировку пузырьком
|
|
for i := 0; i < len(nums)-1; i++ {
|
|
for j := i + 1; j < len(nums); j++ {
|
|
if nums[i] > nums[j] {
|
|
nums[i], nums[j] = nums[j], nums[i]
|
|
}
|
|
}
|
|
}
|
|
fmt.Println("Отсортированный массив:", nums)
|
|
|
|
// Вычисляем среднее значение
|
|
sum := 0
|
|
for i := 0; i < len(nums); i++ {
|
|
sum += nums[i]
|
|
}
|
|
average := float64(sum) / float64(len(nums))
|
|
fmt.Printf("Среднее значение: %.2f\n", average)
|
|
|
|
// Вычисляем медиану
|
|
median := 0
|
|
if len(nums)%2 == 0 {
|
|
median = (nums[len(nums)/2-1] + nums[len(nums)/2]) / 2
|
|
} else {
|
|
median = nums[len(nums)/2]
|
|
}
|
|
fmt.Println("Медиана:", median)
|
|
|
|
// Вычисляем стандартное отклонение
|
|
deviation := 0.0
|
|
for i := 0; i < len(nums); i++ {
|
|
deviation += (float64(nums[i]) - average) * (float64(nums[i]) - average)
|
|
}
|
|
deviation = deviation / float64(len(nums))
|
|
deviation = math.Sqrt(deviation)
|
|
fmt.Printf("Стандартное отклонение: %.2f\n", deviation)
|
|
|
|
// Выполняем сортировку пузырьком повторно :-)
|
|
for i := 0; i < len(nums)-1; i++ {
|
|
for j := i + 1; j < len(nums); j++ {
|
|
if nums[i] > nums[j] {
|
|
nums[i], nums[j] = nums[j], nums[i]
|
|
}
|
|
}
|
|
}
|
|
fmt.Println("Отсортированный массив:", nums)
|
|
|
|
// Выполняем сортировку пузырьком в третий раз для закрепления пройденного материала
|
|
for i := 0; i < len(nums)-1; i++ {
|
|
for j := i + 1; j < len(nums); j++ {
|
|
if nums[i] > nums[j] {
|
|
nums[i], nums[j] = nums[j], nums[i]
|
|
}
|
|
}
|
|
}
|
|
fmt.Println("Отсортированный массив:", nums)
|
|
|
|
// Выполняем сортировку пузырьком в последний раз
|
|
for i := 0; i < len(nums)-1; i++ {
|
|
for j := i + 1; j < len(nums); j++ {
|
|
if nums[i] > nums[j] {
|
|
nums[i], nums[j] = nums[j], nums[i]
|
|
}
|
|
}
|
|
}
|
|
fmt.Println("Отсортированный массив:", nums)
|
|
}
|