1. package main
    2. import "fmt"
    3. func main() {
    4. //回顾练习:从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
    5. // var arr = [...]int{1, 3, 5, 7, 8}
    6. // for i := 0; i < len(arr); i++ {
    7. // for j := i + 1; j < len(arr); j++ {
    8. // if arr[i]+arr[j] == 8 {
    9. // fmt.Printf("(%v,%v)", i, j)
    10. // }
    11. // }
    12. // }
    13. /*
    14. 选择排序:进行从小到大排序
    15. 概念: 通过比较 首先选出最小的数放在第一个位置上,然后在其余的数中选出次小数放在第二个位置上,依此类推,直到所有的数成为有序序列。
    16. [9, 8, 7, 6, 5, 4]
    17. */
    18. /*
    19. 第一轮:
    20. 9 8 7 6 5 4
    21. 8 9 7 6 5 4
    22. 7 9 8 6 5 4
    23. 6 9 8 7 5 4
    24. 5 9 8 7 6 4
    25. 4 9 8 7 6 5 4放在了正确的位置
    26. 第二轮:
    27. 9 8 7 6 5
    28. 8 9 7 6 5
    29. 7 9 8 6 5
    30. 6 9 8 7 5
    31. 5 9 8 7 6 5放在了正确的位置
    32. 第三轮:
    33. 9 8 7 6
    34. 8 9 7 6
    35. 7 9 8 6
    36. 6 9 8 7 6放在了正确的位置
    37. 第四轮:
    38. 9 8 7
    39. 8 9 7
    40. 7 9 8 7放在了正确的位置
    41. 第五轮:
    42. 9 8
    43. 8 9 8放在了正确的位置
    44. */
    45. //numSlice[0] = 4
    46. //numSlice[1] = 5
    47. //numSlice[2] = 6
    48. //numSlice[3] = 7
    49. //numSlice[4] = 8
    50. //numSlice[5] = 8
    51. //从小到大的排序
    52. // var numSlice = []int{9, 8, 7, 6, 5, 4}
    53. // for i := 0; i < len(numSlice); i++ {
    54. // for j := i + 1; j < len(numSlice); j++ {
    55. // if numSlice[i] > numSlice[j] {
    56. // temp := numSlice[i]
    57. // numSlice[i] = numSlice[j]
    58. // numSlice[j] = temp
    59. // }
    60. // }
    61. // }
    62. // fmt.Println(numSlice)
    63. //从大到小的排序
    64. var numSlice = []int{6, 5, 4, 9, 8, 7}
    65. for i := 0; i < len(numSlice); i++ {
    66. for j := i + 1; j < len(numSlice); j++ {
    67. if numSlice[i] < numSlice[j] {
    68. temp := numSlice[i]
    69. numSlice[i] = numSlice[j]
    70. numSlice[j] = temp
    71. }
    72. }
    73. }
    74. fmt.Println(numSlice)
    75. }
    1. package main
    2. import "fmt"
    3. func main() {
    4. /*
    5. 什么叫做冒泡排序?
    6. 概念:从头到尾,比较相邻的两个元素的大小,如果符合交换条件,交换两个元素的位置。
    7. 特点:每一轮比较中,都会选出一个最大的数,放在正确的位置。
    8. 第一轮:
    9. 9 8 7 6 5 4
    10. 8 9 7 6 5 4
    11. 8 7 9 6 5 4
    12. 8 7 6 9 5 4
    13. 8 7 6 5 9 4
    14. 8 7 6 5 4 9 9放在了正确的位置
    15. 第二轮:
    16. 8 7 6 5 4
    17. 7 8 6 5 4
    18. 7 6 8 5 4
    19. 7 6 5 8 4
    20. 7 6 5 4 8 8放在了正确的位置
    21. 第三轮:
    22. 7 6 5 4
    23. 6 7 5 4
    24. 6 5 7 4
    25. 6 5 4 7 7放在了正确的位置
    26. 第四轮:
    27. 6 5 4
    28. 5 6 4
    29. 5 4 6 6放在了正确的位置
    30. 第五轮:
    31. 5 4
    32. 4 5
    33. */
    34. //冒泡排序从小到大
    35. // var numSlice = []int{9, 6, 5, 4, 8}
    36. // for i := 0; i < len(numSlice); i++ {
    37. // for j := 0; j < len(numSlice)-1-i; j++ {
    38. // if numSlice[j] > numSlice[j+1] {
    39. // temp := numSlice[j]
    40. // numSlice[j] = numSlice[j+1]
    41. // numSlice[j+1] = temp
    42. // }
    43. // }
    44. // }
    45. // fmt.Println(numSlice)
    46. //冒泡排序从大到下
    47. var numSlice = []int{9, 6, 5, 4, 8}
    48. for i := 0; i < len(numSlice); i++ {
    49. for j := 0; j < len(numSlice)-1-i; j++ {
    50. if numSlice[j] < numSlice[j+1] {
    51. temp := numSlice[j]
    52. numSlice[j] = numSlice[j+1]
    53. numSlice[j+1] = temp
    54. }
    55. }
    56. }
    57. fmt.Println(numSlice)
    58. }
    1. package main
    2. import (
    3. "fmt"
    4. "sort"
    5. )
    6. func main() {
    7. //1、sort升序排序
    8. // intList := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
    9. // float8List := []float64{4.2, 5.9, 12.4, 10.2, 50.7, 99.9, 31.4, 27.81828, 3.14}
    10. // stringList := []string{"a", "c", "b", "z", "x", "w", "y", "d", "f", "i"}
    11. // sort.Ints(intList)
    12. // sort.Float64s(float8List)
    13. // sort.Strings(stringList)
    14. // fmt.Println(intList)
    15. // fmt.Println(float8List)
    16. // fmt.Println(stringList)
    17. //2、sort降序排序
    18. intList := []int{2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
    19. floatList := []float64{4.2, 5.9, 12.4, 10.2, 50.7, 99.9, 31.4, 27.81828, 3.14}
    20. stringList := []string{"a", "c", "b", "z", "x", "w", "y", "d", "f", "i"}
    21. sort.Sort(sort.Reverse(sort.IntSlice(intList)))
    22. sort.Sort(sort.Reverse(sort.Float64Slice(floatList)))
    23. sort.Sort(sort.Reverse(sort.StringSlice(stringList)))
    24. fmt.Printf("%v\n%v\n%v\n", intList, floatList, stringList)
    25. }