package mainimport "fmt"func main() { //回顾练习:从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。 // var arr = [...]int{1, 3, 5, 7, 8} // for i := 0; i < len(arr); i++ { // for j := i + 1; j < len(arr); j++ { // if arr[i]+arr[j] == 8 { // fmt.Printf("(%v,%v)", i, j) // } // } // } /* 选择排序:进行从小到大排序 概念: 通过比较 首先选出最小的数放在第一个位置上,然后在其余的数中选出次小数放在第二个位置上,依此类推,直到所有的数成为有序序列。 [9, 8, 7, 6, 5, 4] */ /* 第一轮: 9 8 7 6 5 4 8 9 7 6 5 4 7 9 8 6 5 4 6 9 8 7 5 4 5 9 8 7 6 4 4 9 8 7 6 5 4放在了正确的位置 第二轮: 9 8 7 6 5 8 9 7 6 5 7 9 8 6 5 6 9 8 7 5 5 9 8 7 6 5放在了正确的位置 第三轮: 9 8 7 6 8 9 7 6 7 9 8 6 6 9 8 7 6放在了正确的位置 第四轮: 9 8 7 8 9 7 7 9 8 7放在了正确的位置 第五轮: 9 8 8 9 8放在了正确的位置 */ //numSlice[0] = 4 //numSlice[1] = 5 //numSlice[2] = 6 //numSlice[3] = 7 //numSlice[4] = 8 //numSlice[5] = 8 //从小到大的排序 // var numSlice = []int{9, 8, 7, 6, 5, 4} // for i := 0; i < len(numSlice); i++ { // for j := i + 1; j < len(numSlice); j++ { // if numSlice[i] > numSlice[j] { // temp := numSlice[i] // numSlice[i] = numSlice[j] // numSlice[j] = temp // } // } // } // fmt.Println(numSlice) //从大到小的排序 var numSlice = []int{6, 5, 4, 9, 8, 7} for i := 0; i < len(numSlice); i++ { for j := i + 1; j < len(numSlice); j++ { if numSlice[i] < numSlice[j] { temp := numSlice[i] numSlice[i] = numSlice[j] numSlice[j] = temp } } } fmt.Println(numSlice)}
package mainimport "fmt"func main() { /* 什么叫做冒泡排序? 概念:从头到尾,比较相邻的两个元素的大小,如果符合交换条件,交换两个元素的位置。 特点:每一轮比较中,都会选出一个最大的数,放在正确的位置。 第一轮: 9 8 7 6 5 4 8 9 7 6 5 4 8 7 9 6 5 4 8 7 6 9 5 4 8 7 6 5 9 4 8 7 6 5 4 9 9放在了正确的位置 第二轮: 8 7 6 5 4 7 8 6 5 4 7 6 8 5 4 7 6 5 8 4 7 6 5 4 8 8放在了正确的位置 第三轮: 7 6 5 4 6 7 5 4 6 5 7 4 6 5 4 7 7放在了正确的位置 第四轮: 6 5 4 5 6 4 5 4 6 6放在了正确的位置 第五轮: 5 4 4 5 */ //冒泡排序从小到大 // var numSlice = []int{9, 6, 5, 4, 8} // for i := 0; i < len(numSlice); i++ { // for j := 0; j < len(numSlice)-1-i; j++ { // if numSlice[j] > numSlice[j+1] { // temp := numSlice[j] // numSlice[j] = numSlice[j+1] // numSlice[j+1] = temp // } // } // } // fmt.Println(numSlice) //冒泡排序从大到下 var numSlice = []int{9, 6, 5, 4, 8} for i := 0; i < len(numSlice); i++ { for j := 0; j < len(numSlice)-1-i; j++ { if numSlice[j] < numSlice[j+1] { temp := numSlice[j] numSlice[j] = numSlice[j+1] numSlice[j+1] = temp } } } fmt.Println(numSlice)}
package mainimport ( "fmt" "sort")func main() { //1、sort升序排序 // intList := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0} // float8List := []float64{4.2, 5.9, 12.4, 10.2, 50.7, 99.9, 31.4, 27.81828, 3.14} // stringList := []string{"a", "c", "b", "z", "x", "w", "y", "d", "f", "i"} // sort.Ints(intList) // sort.Float64s(float8List) // sort.Strings(stringList) // fmt.Println(intList) // fmt.Println(float8List) // fmt.Println(stringList) //2、sort降序排序 intList := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0} floatList := []float64{4.2, 5.9, 12.4, 10.2, 50.7, 99.9, 31.4, 27.81828, 3.14} stringList := []string{"a", "c", "b", "z", "x", "w", "y", "d", "f", "i"} sort.Sort(sort.Reverse(sort.IntSlice(intList))) sort.Sort(sort.Reverse(sort.Float64Slice(floatList))) sort.Sort(sort.Reverse(sort.StringSlice(stringList))) fmt.Printf("%v\n%v\n%v\n", intList, floatList, stringList)}