Tag - 排序

排序    2020-06-17 09:43:59    239    0    0
  1. // 冒泡排序
  2. func bubbleSort(nums []int) {
  3. size := len(nums)
  4. for i := 0; i < size - 1; i++ {
  5. for j := i + 1; j < size; j++ {
  6. if nums[j] < nums[i] {
  7. nums[i], nums[j] = nums[j], nums[i]
  8. }
  9. }
  10. }
  11. }
  12. // 选择排序
  13. func selectSort(nums []int) {
  14. size := len(nums)
  15. idx := 0
  16. for i := 0; i < size - 1; i++ {
  17. idx = i
  18. for j := i + 1; j < size; j++ {
  19. if nums[j] < nums[idx] {
  20. idx = j
  21. }
  22. }
  23. if idx != i {
  24. nums[i], nums[idx] = nums[idx], nums[i]
  25. }
  26. }
  27. }
  28. // 快速排序
  29. func quickSort(nums []int, left, right int) {
  30. tmp := nums[left]
  31. i, j := left, right
  32. for i < j {
  33. for i < j && nums[j] >= tmp {
  34. j--
  35. }
  36. nums[i] = nums[j]
  37. for i < j && nums[i] <= tmp {
  38. i++
  39. }
  40. nums[j] = nums[i]
  41. }
  42. nums[i] = tmp
  43. if i > left + 1 {
  44. quickSort(nums, left, i - 1)
  45. }