排序的基本介绍


冒泡排序的思路分析

func BubbleSoet(arr *[5]int) {fmt.Println("排序前:arr",(*arr))temp := 0for i := 0; i < len(*arr) - 1; i++{for j := 0; j<len(*arr) - 1 - i; j++{if (*arr)[j] > (*arr)[j+1]{temp = (*arr)[j](*arr)[j] = (*arr)[j+1](*arr)[j+1] = temp}}}fmt.Println("排序后:arr",(*arr))
}func main() {arr := [5]int{24,23,45,678,123}BubbleSoet(&arr)
}

查找

介绍:

在 Golang 中,我们常用的查找有两种:

  1. 顺序查找
  2. 二分查找(该数组是有序)

案例演示:

  1. 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 代码:

  1. 请对一个有序数组进行二分查找 {1,8, 10, 89, 1000, 1234} ,输入一个数看看该数组是否存 在此数,并且求出下标,如果没有就提示"没有这个数"。【会使用到递归】
    二分查找的思路分析:

    二分查找的代码实现:
func BinaryFind(arr *[5]int, leftIndex int, rightIndex int, findVal int) {/*二分查找的思路: 比如我们要查找的数是 findVal 1. arr 是一个有序数组,并且是从小到大排序2.先找到 中间的下标 middle = (leftIndex + rightIndex) / 2, 然后让 中间下标的值和 findVal 进行 比较2.1如果 arr[middle] > findVal , 就应该向    leftIndex ---- (middle - 1)2.2如果 arr[middle] < findVal , 就应该向    middel+1---- rightIndex2.3如果 arr[middle] == findVal  , 就找到2.4  上面的 2.1 2.2 2.3 的逻辑会递归执行3. 想一下,怎么样的情况下,就说明找不到[分析出退出递归的条件!!] if   leftIndex > rightIndex {// 找不到..return ..
}
*/if leftIndex > rightIndex{fmt.Println("找不到")return}middle := (leftIndex + rightIndex) /2if (*arr)[middle] > findVal {BinaryFind(arr, leftIndex, middle, findVal)} else if (*arr)[middle] < findVal{BinaryFind(arr, middle, rightIndex, findVal)}else {fmt.Println("找到了,下标为%v \n", middle)}
}func main() {arr := [5]int{24,23,45,678,123}BinaryFind(&arr, 0, len(arr)-1, 23)
}

Goalng笔记——排序和查找相关推荐

  1. 一起初学java,笔记记录的第五天:数组、排序和查找

    一起初学java,笔记记录的第五天:数组.排序和查找 适用于初学java者 这个首先指出本文中图片和资源来自**韩顺平**老师,感谢老师做的无私奉献的教学! 1. 数组介绍 数组可以存放多个同一类型的 ...

  2. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  3. vector排序与查找

    本示例使用比较函数,函数对象进行vector的排序与查找操作. #include <algorithm> #include <vector> using namespace s ...

  4. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  5. 数据结构 排序和查找

    #include <stdio.h> #include <stdlib.h> #include <time.h> const int ITEMNUM = 100; ...

  6. leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)

    题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7  ...

  7. 1.8 Collections类操作集合详解——排序,查找,复制

    Collections类操作集合详解 Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类. Collections 类提供了许多操作集合的静态方法,借 ...

  8. 教你用BitMap排序、查找和存储大量数据

    Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省. Bit-map概述 假设现在有这样一 ...

  9. 数据结构排序、查找算法

    前言 这是数据结构的实验四的题目. 为了自己能在繁杂的文件中顺利.快速地找到自己熟悉的排序.查找算法代码,故借CSDN平台存放本人写的代码.另外,还请有缘看到此文章的同行们能多多指点. 非常感谢. 1 ...

最新文章

  1. Solaris 上swap -s的解释
  2. 如何更快地将string转换成int/long
  3. Median of Two Sorted Arrays
  4. Web前端开发应该避免的几个思维误区
  5. mysql8 grant语法失效
  6. idea database 添加字段不更新_如何借助IDEA数据库管理工具可视化使用TDengine?
  7. 【ElasticSearch】Es 源码之 RestController 源码解读
  8. Linux中常用目录作用
  9. verifycode.php,verifycode.php
  10. 转:稻盛和夫:在软弱的领导人手下工作,是可悲的
  11. SAP按库存生产在制品分析
  12. 一文了解“什么是ACL”、“什么是EACL”、“什么是NAACL”、“什么是AACL”国际会议
  13. 项目整体管理:项目整体管理概述
  14. 配置华为防火墙NAT功能
  15. lstrcpyn和strncpy
  16. 如何隐藏并禁止查看U盘
  17. 开源的悲哀——袁萌100天变身实录[3]
  18. 什么是GLEW GLFW GLM
  19. 2020七月实训GUI学生信息管理系统
  20. dod刷服务器文件,编辑修改

热门文章

  1. 行为设计模式 - 责任链设计模式
  2. 牛逼哄哄的 MQ 到底有啥用?
  3. C#基础知识1-深入理解值类型和引用类型
  4. css里的符号含义【串联选择器】和【后代选择器】
  5. mac下安装elasticsearch
  6. python can i use return in wiht statement?
  7. 如何在Swift中使用CoreData设置有用的自动完成UITextField
  8. filter wiz_Grid Wiz简介:只需一瞬间即可制作出具有自定义浏览器支持CSS网格框架。
  9. 我的第一个安卓应用程序_今天,我启动了我的第一个移动应用程序。 这是我学到的...
  10. 小程序遵循的语法_我如何构建一个遵循股市针对freeCodeCamp挑战的应用程序。