Skip to content

Commit

Permalink
gnome sort and cocktail sort added
Browse files Browse the repository at this point in the history
  • Loading branch information
0xAX committed Jun 24, 2014
1 parent 175b499 commit 2d09ed9
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 10 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ _testmain.go

sorting/bubble_sort
sorting/selection_sort
sorting/merge_sort
sorting/merge_sort
sorting/cocktail_sort
sorting/gnome_sort
9 changes: 3 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,9 @@ alghoritms
* bubble sort
* selection sort
* merge sort

todo
------

* Add `Makefile`

* cocktail sort
* gnome sort

contribution
------------

Expand Down
2 changes: 1 addition & 1 deletion sorting/bubble_sort.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
43 changes: 43 additions & 0 deletions sorting/cocktail_sort.go
Original file line number Diff line number Diff line change
@@ -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)
}
34 changes: 34 additions & 0 deletions sorting/gnome_sort.go
Original file line number Diff line number Diff line change
@@ -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)
}

2 changes: 1 addition & 1 deletion sorting/merge_sort.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion sorting/selection_sort.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 2d09ed9

Please sign in to comment.