随笔分类 -  算法学习

摘要:目录什么是归并排序算法思想代码示例 什么是归并排序 归并排序(Merge Sort)是一种经典的排序算法,它采用分治策略来将一个大问题分解成小问题,然后将小问题的结果合并起来得到最终的解决方案。归并排序的核心思想是将待排序的数组不断地二分,直到每个子数组的长度为1,然后再将相邻的子数组合并成一个有序 阅读全文
posted @ 2023-12-27 22:11 Monster_bird 阅读(6) 评论(0) 推荐(0) 编辑
摘要:目录什么是topk问题解决方法代码示例(堆排序) 什么是topk问题 Top-k 问题是指在一个元素集合中找出前 k 个最大或最小的元素。这个问题在很多实际场景中都有应用,例如在大数据处理中获取最大的 k 个元素、搜索引擎中的搜索结果排序等。 解决方法 堆排序:使用最小堆或最大堆来解决 Top-k 阅读全文
posted @ 2023-12-27 15:20 Monster_bird 阅读(41) 评论(0) 推荐(0) 编辑
摘要:目录什么是堆排序算法思想代码示例 什么是堆排序 堆排序(Heap Sort)是一种基于二叉堆数据结构的排序算法。它的主要思想是将待排序的序列构建成一个大顶堆(或小顶堆),然后反复从堆顶取出最大(或最小)元素,将剩余的元素重新调整为一个新的堆,再重复取出堆顶元素的过程,直到排序完成。 算法思想 构建堆 阅读全文
posted @ 2023-12-27 15:15 Monster_bird 阅读(10) 评论(0) 推荐(0) 编辑
摘要:目录什么是快速排序算法思想示例代码 什么是快速排序 快速排序(Quicksort)是一种常用的排序算法,它的基本思想是通过分治的策略将一个大问题划分为多个小问题来解决。它的平均时间复杂度为O(nlogn),最坏情况(有序情况)为O(n^2)。是一种高效的排序算法。 算法思想 选择一个基准元素(piv 阅读全文
posted @ 2023-12-23 22:37 Monster_bird 阅读(8) 评论(0) 推荐(0) 编辑
摘要:目录什么是插入排序算法原理示例代码 什么是插入排序 插入排序可理解为扑克牌摸牌的过程,手中的牌为有序序列,然后随机摸一张牌,根据牌的大小插入到有序序列对应的位置。算法时间复杂度为O(n^2) 算法原理 默认列表第一个元素为基准,从第二个元素和第一个元素进行比较,并放入到相应位置。 此时前两个元素是一 阅读全文
posted @ 2023-12-15 23:10 Monster_bird 阅读(6) 评论(0) 推荐(0) 编辑
摘要:目录什么是选择排序算法原理示例代码 什么是选择排序 选择排序的主要思想是(升序为例):第一次从待排序的数据元素中选出最小的一个元素,和数组的起始位置元素进行交换,然后再从剩余的未排序元素中寻找到最小元素,然后和未排序的序列的第一个元素进行交换。每次在未排序序列中选择一个最小元素这样已排序序列就是一个 阅读全文
posted @ 2023-12-15 22:14 Monster_bird 阅读(13) 评论(0) 推荐(0) 编辑
摘要:目录什么是冒泡排序算法原理代码示例 什么是冒泡排序 ​对给定数组进行遍历,每次比较相邻两个元素大小,若大的数值在前面则交换两数位置(升序),每完成一趟遍历数组中最大的元素都会上升到数组的末尾,这也是冒泡一词的由来。 算法原理 (升序)列表每相邻的数,如果前面比后面大,则交换这两个数。 一趟排序完成后 阅读全文
posted @ 2023-12-14 22:50 Monster_bird 阅读(12) 评论(0) 推荐(0) 编辑
摘要:目录什么是二分查找算法原理示例代码(python) 什么是二分查找 二分查找也叫折半查找,是在有序数组查找特定元素的算法。算法的时间复杂度为O(logn)。 算法原理 定义一个有序数组, 初始化left数组第一个元素序号,right为数组最后一个元素序号,middle为left和right中间元素序 阅读全文
posted @ 2023-12-14 21:53 Monster_bird 阅读(23) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示