Shembull: Bubble Sort

 1 package main
 2 
 3 import (
 4 	"fmt"
 5 )
 6 
 7 var list = []int{1, 900, 2, 4, 8, 6, 3, 2, 4, 8, 6, 7, 3, 0, -300}
 8 
 9 func bubbleSort(input []int) []int {
10 	n := len(input)
11 	swapped := true
12 	for swapped {
13 		swapped = false
14 		for i := 1; i < n; i++ {
15 			if input[i-1] > input[i] {
16 				input[i], input[i-1] = input[i-1], input[i]
17 				swapped = true
18 			}
19 		}
20 
21 		n--
22 	}
23 
24 	return input
25 }
26 
27 func main() {
28 	fmt.Println("Lista origjinale:")
29 	fmt.Println(list)
30 	fmt.Println("Lista e sortuar:")
31 	fmt.Println(bubbleSort(list))
32 }

https://play.golang.org/p/T_igbGHGwL4

Rezultati:


Lista origjinale:
[1 900 2 4 8 6 3 2 4 8 6 7 3 0 -300]
Lista e sortuar:
[-300 0 1 2 2 3 3 4 4 6 6 7 8 8 900]