自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 七. 桶排序

桶排序是一种非比较的排序算法,通过分配数据到不同的桶中,最后对每个桶内的数据进行单独的排序或计数,最后将所有桶内的数据按顺序连接,即实现了排序的过程。计数排序的时间复杂度为O(n),这使得它比其他排序算法快得多,特别是当待排序的数据量很大,但是其空间复杂度却较高。因此,桶排序的总时间复杂度是 O(n),这是一种非常高效的排序算法。计数排序的复杂度为 O(n+k),其中 k 是数组中出现的数的范围。桶排序是一种特殊的计数排序,它是针对于元素的数量而不是元素的值。桶排序的基本思想是将数组分到有限数量的桶子里。

2024-10-14 19:23:09 758

原创 基数排序

它的基本思想是:将整数按位数切割成不同的数字,然后按每个位数分别比较。具体来说,就是将数列分别按个位,十位,百位... 的大小顺序排序,最后组合在一起。具体实现过程中,使用了一个二维数组作为桶,桶的第一维是数字的每一位,第二维是存储这一位数字相同的数字的数组。基数排序是桶排序的扩展,用于整数排序,与桶排序相比,其多了一重循环,用于不同数位的比较。基数排序适用于整数排序,特别是位数大小不一的整数排序,比如电话号码、银行卡号等。总体来说,基数排序是一种非常有效的整数排序算法,特别是对于大量数,很长的数列。

2024-09-29 10:13:54 951

原创 快速排序

快速排序是一种分治算法,它的思想是通过选定一个基准值,将数组分成两个部分,左边部分的元素都小于等于基准值,右边部分的元素都大于基准值,然后再递归地对左右两个部分进行快速排序。总结: 快速排序的时间复杂度为O(nlogn),空间复杂度为O(logn),是一种高效的排序算法。基数排序是桶排序的扩展,用于整数排序,与桶排序相比,其多了一重循环,用于不同数位的比较。时间复杂度: 快速排序是一种分治思想的排序算法,它的时间复杂度取决于基准数的选取。总的来说,快速排序是一种高效的排序算法,适用于大多数的排序场景。

2024-09-15 09:47:08 875

原创 归并排序

这个算法最早出现在1945年,由约翰·冯·诺伊曼(John von Neumann)(又一个天才,现代计算机之父,冯·诺依曼结构、普林斯顿结构)首次提出。归并排序的基本思路是先将待排序数组递归地拆分成两个子数组,然后对每个子数组进行排序,最后将两个有序子数组合并成一个有序数组。虽然归并排序看起来比较复杂,但是只要理解了基本思路,实现起来并不困难,而且它还是一个非常有趣的算法。归并排序的代码实现较为简单,但要注意关于递归函数和合并函数的实现。归并排序是一种不需要过多研究的算法,适合于所有的排序场景。

2024-09-14 15:20:37 1236

原创 插入排序

插入排序就像是打扑克牌,从牌堆顶取一张牌,找到合适的位置插入到已有牌的顺序中,并不断重复这一步骤直到所有的牌都被插入到合适的位置,最终使得整副牌有序。由于插入排序的最好时间复杂度与最坏时间复杂度都接近O(n^2),所以插入排序适用于数据规模不大的场合,如果数据规模很大,通常使用其他算法。插入排序的时间复杂度在最好的情况下为O(n),在最坏的情况下为O(n^2),平均时间复杂度为O(n^2)。插入排序的优势在于它的性能表现在已经有序的序列上比冒泡排序、选择排序两种算法要好。

2024-09-13 08:23:24 1275

原创 选择排序

我们分析选择排序中的每一步,再将每一步的时间复杂度加起来,最后得到的就是选择排序的时间复杂度。选择排序的实现方式很简单,并且容易理解,因此它是学习排序算法的很好的入门途径。计算选择排序算法的时间复杂度,通常是通过分析算法中每一步的执行次数来确定的。选择排序(Selection Sort)是一种简单的排序算法。选择排序的主要优点与数据移动有关。

2024-09-12 16:48:05 429

原创 冒泡排序

在冒泡排序中,每次比较两个相邻的元素,并交换它们的位置,如果左边的元素比右边的元素大,则交换它们的位置。这样的比较和交换的过程可以用一个循环实现。由此可见,冒泡排序的时间复杂度主要取决于数据的初始顺序,最坏情况下时间复杂度是O(n^2),不适用于大规模数据的排序。这种算法是稳定的,即相等元素的相对位置不会发生变化。因此,冒泡排序适用于数据规模小的场景。冒泡排序是一种简单的排序方法。

2024-09-12 16:47:23 547

原创 ArkTs 基础

interface 接口名 {属性1: 类型1属性2: 类型2属性3: 类型3。

2024-09-11 08:41:35 458

原创 鸿蒙应用基础

编程语言:用来控制计算机工作的,可以告诉计算机我们要做的事情。② 不能使用内置关键字或保留字 (比如 let、const)① 只能包含数字、字母、下划线、$,不能以数字开头。ArkTS:是一门用于开发鸿蒙应用的编程语言。③ boolean 布尔:判断 (真、假)写法:const 常量名: 类型 = 值。编写代码 → 编译运行 → 查看效果。变量:专门用来存储数据的容器(可变)① string 字符串:描述信息。常量:用来存储数据 (不可变)② number 数字:计算。

2024-09-07 19:46:50 376 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除