使用go语言实现冒泡排序和快速排序

冒泡排序算法的实现

func bubbleSort(values []int) {
   flag := true
   for i := 0; i < len(values)-1; i++ {
      flag = true
      for j := 0; j < len(values)-i-1; j++ {
         if values[j] > values[j+1] {
            values[j], values[j+1] = values[j+1], values[j]
            flag = false
         }
      }
         if flag == true {
            break
         }

   }
}

快速排序算法的实现

func quickSort(values []int, left, right int) {
   temp := values[left]
   p := left
   i, j := left, right
   for i < j {
      if j >= p && values[j] >= temp {
         j--
      }
      if j >= p {
         values[p] = values[j]
         p = j
      }
      if values[i] <= temp && i <= p {
         i++
      }
      if i <= p {
         values[p] = values[i]
         p = i
      }
   }
   values[p] = temp
   if p-left > 1 {
      quickSort(values, left, p-1)
   }
   if right-p > 1 {
      quickSort(values, p+1, right)
   }
}
func QuickSort(values []int) {
   quickSort(values, 0, len(values)-1)
}

猜你喜欢

转载自blog.csdn.net/ddhsea/article/details/86573057