Skip to content

Commit fab53a2

Browse files
committed
added solutions for the first two practice problems for bubble sort
1 parent 548d9c5 commit fab53a2

File tree

3 files changed

+163
-0
lines changed
  • 001_bubble_sort/practice_problems
    • 001_reverse_sort_with_numbers_solution
    • 002_sort_strings_solution
    • 003_first_and_last_name_solution

3 files changed

+163
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var numbers []int = []int{21, 4, 2, 13, 10, 0, 19, 11, 7, 5, 23, 18, 9, 14, 6, 8, 1, 20, 17, 3, 16, 22, 24, 15, 12}
7+
fmt.Println("Unsorted:", numbers)
8+
reverseBubbleSort(numbers)
9+
fmt.Println("Sorted: ", numbers)
10+
}
11+
12+
func reverseBubbleSort(numbers []int) {
13+
var N int = len(numbers)
14+
var i int
15+
for i = 0; i < N; i++ {
16+
sweep(numbers)
17+
}
18+
}
19+
20+
func sweep(numbers []int) {
21+
var N int = len(numbers)
22+
var firstIndex int = 0
23+
var secondIndex int = 1
24+
25+
for secondIndex < N {
26+
var firstNumber int = numbers[firstIndex]
27+
var secondNumber int = numbers[secondIndex]
28+
29+
if firstNumber < secondNumber {
30+
numbers[firstIndex] = secondNumber
31+
numbers[secondIndex] = firstNumber
32+
}
33+
34+
firstIndex++
35+
secondIndex++
36+
}
37+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
)
7+
8+
func main() {
9+
var animals []string = []string{
10+
"dog",
11+
"cat",
12+
"alligator",
13+
"Cheetah",
14+
"rat",
15+
"moose",
16+
"cow",
17+
"mink",
18+
"porcupine",
19+
"dung beetle",
20+
"camel",
21+
"steer",
22+
"bat",
23+
"hamster",
24+
"horse",
25+
"colt",
26+
"bald eagle",
27+
"frog",
28+
"rooster",
29+
}
30+
31+
fmt.Println("Unsorted:", animals)
32+
bubbleSort(animals)
33+
fmt.Println("Sorted: ", animals)
34+
}
35+
36+
func bubbleSort(animals []string) {
37+
var N int = len(animals)
38+
var i int
39+
for i = 0; i < N; i++ {
40+
sweep(animals)
41+
}
42+
}
43+
44+
func sweep(animals []string) {
45+
var N int = len(animals)
46+
var firstIndex int = 0
47+
var secondIndex int = 1
48+
49+
for secondIndex < N {
50+
var firstVal string = animals[firstIndex]
51+
var secondVal string = animals[secondIndex]
52+
53+
if greater(firstVal, secondVal) {
54+
animals[firstIndex] = secondVal
55+
animals[secondIndex] = firstVal
56+
}
57+
58+
firstIndex++
59+
secondIndex++
60+
}
61+
}
62+
63+
func greater(a, b string) bool {
64+
if strings.ToLower(a) > strings.ToLower(b) {
65+
return true
66+
} else {
67+
return false
68+
}
69+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import "fmt"
4+
5+
type User struct {
6+
FirstName string
7+
LastName string
8+
}
9+
10+
func main() {
11+
var users []User = []User{
12+
User{
13+
FirstName: "Jon",
14+
LastName: "Calhoun",
15+
},
16+
User{
17+
FirstName: "Bob",
18+
LastName: "Smith",
19+
},
20+
User{
21+
FirstName: "John",
22+
LastName: "Smith",
23+
},
24+
User{
25+
FirstName: "Larry",
26+
LastName: "Green",
27+
},
28+
User{
29+
FirstName: "Joseph",
30+
LastName: "Page",
31+
},
32+
User{
33+
FirstName: "George",
34+
LastName: "Costanza",
35+
},
36+
User{
37+
FirstName: "Jerry",
38+
LastName: "Seinfeld",
39+
},
40+
User{
41+
FirstName: "Shane",
42+
LastName: "Calhoun",
43+
},
44+
}
45+
46+
fmt.Println("Unsorted:", users)
47+
bubbleSort(users)
48+
fmt.Println("Sorted: ", users)
49+
}
50+
51+
func bubbleSort(users []User) {
52+
// Implement this and any other functions you may need
53+
// If you are writing Go code, you can access the first
54+
// and last name like so:
55+
fmt.Println(users[0].FirstName)
56+
fmt.Println(users[0].LastName)
57+
}

0 commit comments

Comments
 (0)