gnome sort and cocktail sort added

pull/2/head
0xAX 10 years ago
parent 175b499c1f
commit 2d09ed93b8

4
.gitignore vendored

@ -25,4 +25,6 @@ _testmain.go
sorting/bubble_sort
sorting/selection_sort
sorting/merge_sort
sorting/merge_sort
sorting/cocktail_sort
sorting/gnome_sort

@ -20,12 +20,9 @@ alghoritms
* bubble sort
* selection sort
* merge sort
todo
------
* Add `Makefile`
* cocktail sort
* gnome sort
contribution
------------

@ -6,7 +6,7 @@ package main
import "fmt"
import "github.com/IoSync/go-alghoritms"
import "github.com/0xAX/go-alghoritms"
func main() {
arr := utils.RandArray(10)

@ -0,0 +1,43 @@
package main
/*
* Cocktail sort - https://en.wikipedia.org/wiki/Cocktail_sort
*/
import "fmt"
import "github.com/0xAX/go-alghoritms"
func main() {
arr := utils.RandArray(10)
fmt.Println("Initial array is:", arr)
fmt.Println("")
tmp := 0
for i := 0; i < len(arr) / 2; i++ {
left := 0
right := len(arr) - 1
for ; left <= right ; {
if arr[left] > arr[left + 1] {
tmp = arr[left]
arr[left] = arr[left + 1]
arr[left + 1] = tmp
}
left++
if arr[right - 1] > arr[right] {
tmp = arr[right - 1]
arr[right - 1] = arr[right]
arr[right] = tmp
}
right--
}
}
fmt.Println("Sorted array is: ", arr)
}

@ -0,0 +1,34 @@
package main
/*
* Gnome sort - https://en.wikipedia.org/wiki/Gnome_sort
*/
import "fmt"
import "github.com/0xAX/go-alghoritms"
func main() {
arr := utils.RandArray(10)
fmt.Println("Initial array is:", arr)
fmt.Println("")
i := 1
tmp := 0
for ; i < len(arr) ; {
if arr[i] >= arr[i - 1] {
i++
} else {
tmp = arr[i]
arr[i] = arr[i - 1]
arr[i - 1] = tmp
if i > 1 {
i--
}
}
}
fmt.Println("Sorted array is: ", arr)
}

@ -6,7 +6,7 @@ package main
import "fmt"
import "github.com/IoSync/go-alghoritms"
import "github.com/0xAX/go-alghoritms"
func Merge(left, right []int) []int {
result := make([]int, 0, len(left) + len(right))

@ -6,7 +6,7 @@ package main
import "fmt"
import "github.com/IoSync/go-alghoritms"
import "github.com/0xAX/go-alghoritms"
func main() {
arr := utils.RandArray(10)

Loading…
Cancel
Save