Skip to content

Commit 7ba2a53

Browse files
committed
update to use cmp.Ordered
1 parent bcafec0 commit 7ba2a53

10 files changed

+23
-29
lines changed

.gitignore

-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
.vscode
22
.idea
3-
rust/target
4-
strings/sort/*.txt
5-
tmp.txt

go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ go 1.21
55
require github.com/waiyva/binary-tree v1.0.0
66

77
require (
8-
golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4 // indirect
98
gopkg.in/yaml.v2 v2.4.0 // indirect
109
)

sort/bubble.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Bubble[Ord constraints.Ordered](data []Ord) {
19+
func Bubble[Ord cmp.Ordered](data []Ord) {
2020
for i := len(data) - 1; i > 0; i-- {
2121
for j := 0; j < i; j++ {
2222
if data[j] > data[j+1] {

sort/heap.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Heap[Ord constraints.Ordered](data []Ord) {
19+
func Heap[Ord cmp.Ordered](data []Ord) {
2020
// construct big top heap
2121
// leaf do not need to sink
2222
for i := (len(data) - 2) / 2; i >= 0; i-- {
@@ -30,7 +30,7 @@ func Heap[Ord constraints.Ordered](data []Ord) {
3030
}
3131

3232
// big top heap
33-
func percolateDown[Ord constraints.Ordered](h []Ord, i int) {
33+
func percolateDown[Ord cmp.Ordered](h []Ord, i int) {
3434
k := h[i]
3535
cavIdx := i
3636
for {

sort/insert.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Insert[Ord constraints.Ordered](data []Ord) {
19+
func Insert[Ord cmp.Ordered](data []Ord) {
2020
for i := 1; i < len(data); i++ {
2121
insrtNum := data[i]
2222
j := i - 1

sort/merge.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Merge[Ord constraints.Ordered](data []Ord) {
19+
func Merge[Ord cmp.Ordered](data []Ord) {
2020
aux := make([]Ord, len(data))
2121
mergeSort(data, aux)
2222
}
2323

24-
func mergeSort[Ord constraints.Ordered](data []Ord, aux []Ord) {
24+
func mergeSort[Ord cmp.Ordered](data []Ord, aux []Ord) {
2525
if len(data) < 2 {
2626
return
2727
}
@@ -31,7 +31,7 @@ func mergeSort[Ord constraints.Ordered](data []Ord, aux []Ord) {
3131
merge(data, mid, aux)
3232
}
3333

34-
func merge[Ord constraints.Ordered](data []Ord, mid int, aux []Ord) {
34+
func merge[Ord cmp.Ordered](data []Ord, mid int, aux []Ord) {
3535
i, j, k := 0, mid, 0
3636
for i < mid && j < len(data) {
3737
if data[i] < data[j] {

sort/quick.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Quick[Ord constraints.Ordered](data []Ord) {
19+
func Quick[Ord cmp.Ordered](data []Ord) {
2020
quickSort(data, 0, len(data)-1)
2121
}
2222

23-
func quickSort[Ord constraints.Ordered](data []Ord, lo, hi int) {
23+
func quickSort[Ord cmp.Ordered](data []Ord, lo, hi int) {
2424
if hi <= lo {
2525
return
2626
}
@@ -37,7 +37,7 @@ func quickSort[Ord constraints.Ordered](data []Ord, lo, hi int) {
3737
}
3838

3939
// 把 data[0] data[len(data)/2] data[len(data)-1] 中的中位数(枢纽元)交换到data[len(data)-1]
40-
func median2end[Ord constraints.Ordered](data []Ord, lo, hi int) {
40+
func median2end[Ord cmp.Ordered](data []Ord, lo, hi int) {
4141
m := int(uint(lo+hi) >> 1)
4242
if data[m] < data[lo] {
4343
data[m], data[lo] = data[lo], data[m]
@@ -52,7 +52,7 @@ func median2end[Ord constraints.Ordered](data []Ord, lo, hi int) {
5252
}
5353

5454
// 此时枢纽元在 data[len(data)-1] , 开始分割data[:len(data)-1], 并将枢纽元交换到i最终位置
55-
func cutOff[Ord constraints.Ordered](data []Ord, lo, hi int) int {
55+
func cutOff[Ord cmp.Ordered](data []Ord, lo, hi int) int {
5656
i, j := lo, hi-1
5757
for i <= j {
5858
for i <= hi && data[i] < data[hi] {

sort/select.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Select[Ord constraints.Ordered](data []Ord) {
19+
func Select[Ord cmp.Ordered](data []Ord) {
2020
for i := 0; i < len(data)-1; i++ {
2121
idxMin := i
2222
for j := i + 1; j < len(data); j++ {

sort/shell.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package sort
1616

17-
import "golang.org/x/exp/constraints"
17+
import "cmp"
1818

19-
func Shell[Ord constraints.Ordered](data []Ord) {
19+
func Shell[Ord cmp.Ordered](data []Ord) {
2020
// shell increment
2121
for incre := len(data) >> 1; incre > 1; incre >>= 1 {
2222
// sort $incre arries with interval of $incre in one loop

util/util.go

+3-5
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,14 @@ package util
1616

1717
import (
1818
"bufio"
19-
"io/ioutil"
19+
"cmp"
2020
"os"
2121
"strings"
2222
"time"
23-
24-
"golang.org/x/exp/constraints"
2523
)
2624

2725
func ReadAllLines(filename string) []string {
28-
content, err := ioutil.ReadFile(filename)
26+
content, err := os.ReadFile(filename)
2927
if err != nil {
3028
panic(err)
3129
}
@@ -86,7 +84,7 @@ func MaxInt8(a, b int8) int8 {
8684
return b
8785
}
8886

89-
func Max[Ord constraints.Ordered](a, b Ord) Ord {
87+
func Max[Ord cmp.Ordered](a, b Ord) Ord {
9088
if a > b {
9189
return a
9290
}

0 commit comments

Comments
 (0)