算法(冒泡/快速查询/二分查找)

冒泡#

func BubbleSort(arr *[5]int) {
 //定义一个临时变量
  temp := 0
   //最外层循环轮数
  for j := 0; j < len(*arr)-1; j++ {
      //循环每一轮排序
  for i := 0; i < len(*arr)-1-j; i++ {


  if (*arr)[i] < (*arr)[i+1] {
            temp = (*arr)[i]
            (*arr)[i] = (*arr)[i+1]
            (*arr)[i+1] = temp
         }
      }
   }
}

快速查询#

func queryFind(arr *[5]int, searchValue int) {
    indexValue := -1
    for i := 0; i < len(*arr); i++ {
        if searchValue == (*arr)[i] {
            indexValue = i
            break
        }
    }
    if indexValue != -1 {
        fmt.Printf("找到了数组的值%d,下标是%d", searchValue, indexValue)
    } else {
        fmt.Printf("没有找到")
    }
}

二分查找#

func BinaryFind(arr *[5]int, leftIndex int, rightIndex int, searchValue int) {

   if leftIndex > rightIndex {
      fmt.Println("找不到")
      return
  }
   //中间索引
  middleIndex := (leftIndex + rightIndex) / 2
  if (*arr)[middleIndex] > searchValue {  // searchValue 在 一半左
  BinaryFind(arr, leftIndex, middleIndex-1, searchValue)
   } else if (*arr)[middleIndex] < searchValue {  //searchValue 在 一半右
  BinaryFind(arr, middleIndex+1, rightIndex, searchValue)
   } else if (*arr)[middleIndex] == searchValue { //刚刚好大于
  fmt.Println(middleIndex)
   }
}

本作品采用《CC 协议》,转载必须注明作者和本文链接
有梦想的人睡不着,没有梦想的人睡不醒。
文章
88
粉丝
23
喜欢
134
收藏
270
排名:227
访问:4.2 万
私信
所有博文
博客标签
展开
社区赞助商