utils.go 934 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package utils
  2. import (
  3. "math"
  4. "sort"
  5. )
  6. //Int64排序
  7. func QuickSort(a []int64, left int64, right int64) {
  8. if left >= right {
  9. return
  10. }
  11. temp := a[left]
  12. start := left
  13. stop := right
  14. for right != left {
  15. for right > left && a[right] >= temp {
  16. right--
  17. }
  18. for left < right && a[left] <= temp {
  19. left++
  20. }
  21. if right > left {
  22. a[right], a[left] = a[left], a[right]
  23. }
  24. }
  25. a[right], a[start] = temp, a[right]
  26. QuickSort(a, start, left)
  27. QuickSort(a, right+1, stop)
  28. }
  29. // 字符串去重
  30. func RemoveRepeatedElement(arr []string) (newArr []string) {
  31. newArr = make([]string, 0)
  32. sort.Strings(arr)
  33. for i := 0; i < len(arr); i++ {
  34. repeat := false
  35. for j := i + 1; j < len(arr); j++ {
  36. if arr[i] == arr[j] {
  37. repeat = true
  38. break
  39. }
  40. }
  41. if !repeat {
  42. newArr = append(newArr, arr[i])
  43. }
  44. }
  45. return
  46. }
  47. func Round(f float64, n int) float64 {
  48. n10 := math.Pow10(n)
  49. return math.Trunc((f+0.5/n10)*n10) / n10
  50. }