21天算法挑战
文章平均质量分 77
一只水兽tao
这个作者很懒,什么都没留下…
展开
-
【排序算法】快速排序
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个关键字有序的序列。需要通过基准将数据划分成两个部分,这两个部分也通过一个基准划分,一直到不可再分。),比如有序时数列的快排,在待排序数据元素已经有序的情况下快速排序时间复杂度最高,退化成冒泡排序。最好情况,每次数据元素都能平均的分成两个部分,得到完全二叉树的状态,空间复杂度O(logn)。最坏情况,每次数据元素只能分成一个部分,仅只有左(右)子数,空间复杂度为O(n)。思想在排序算法上的典型应用。..原创 2022-08-16 22:31:38 · 509 阅读 · 1 评论 -
【排序算法】计数排序
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k),快于任何比较排序算法。给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中。输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]要排序的数据范围过大,则需要的额外空间就越多。...原创 2022-08-14 23:56:24 · 360 阅读 · 2 评论 -
【排序算法】折半插入排序
插入排序(Insertion Sort)是一种简单直接的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中。就像打扑克牌的时候,整理手牌的过程。每次从原有数据中取出一个数,插入到之前已经排好的序列中,直到所有的数全部取完,那么新的有序排列也就完成了。排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个关键字有序的序列。两种算法进行结合,排序的思路与直接插入排序相同,只是在。实现是可以发现,对于相同的数组,排序所要进行。...原创 2022-08-14 23:12:15 · 538 阅读 · 1 评论 -
【查找算法】折半查找算法
**折半**查找,也称**二分搜索**,是一种在**有序**数组中查找某一特定元素的搜索算法。该方法是查找的范围不断缩小一半,因此查找效率较高。原创 2022-08-14 20:12:56 · 3233 阅读 · 1 评论 -
【排序算法】归并排序
归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治( divideand conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案修补”在一起,即分而治之)。...原创 2022-08-07 23:21:40 · 562 阅读 · 6 评论 -
【排序算法】冒泡排序、选择排序、插入排序总结
插入排序、冒泡排序、选择排序。排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个关键字有序的序列。Insertion sort, Bubble Sort, Selection Sort. ...原创 2022-08-04 07:43:12 · 158 阅读 · 6 评论 -
【查找算法】顺序查找算法简述及Java代码实现
**顺序**查找,也称**线性**查找,是最简单的查找方法。从头到尾遍历,逐个元素比较,若与给定值相等,则查找成功,给出该记录在表中的位置;若整个表检索完仍未找到与给定值相等的元素,则查找失败,给出失败信息。...原创 2022-08-01 23:07:58 · 1024 阅读 · 1 评论