码尚行动
码尚行动
全部文章
数据结构与算法
Linux(3)
MySQL(11)
测试理论(2)
随笔(2)
题解(3)
归档
标签
去牛客网
登录
/
注册
码上行动
哪有什么一鸣惊人,有的只是厚积薄发
全部文章
/ 数据结构与算法
(共13篇)
剑指offer_刷题笔记_Java
前言 世人皆知算法与数据结构的重要性,做技术的人,还是要专心于技术.让我们刷起来吧 算法的重要性 首先,回答一下大家的疑惑点: 为什么刷算法? 1.大厂必考算法.(更考察面试者能力,能刷大量面试者,能全面考察面试者) 2.算法提升思维能力,需要理解-->练习-->调试-->优化-...
算法
数据结构
2021-03-29
3
1989
对于数组的认识
数组 总结: 数组用一块连续的内存空间,来存储相同类型的一组数据,最大的特点就是支持随机访问,但插入、删除操作也因此变得比较低效,平均情况时间复杂度为O(n)。在平时的业务开发中,我们可以直接使用编程语言提供的容器类,但是,如果是特别底层的开发,直接使用数组可能会更合适。 什么是数组? 数组(Arr...
算法
数据结构
2021-03-03
1
586
基数排序
10.基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或“箱排序”(bin sort)。它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用。基数排序法是属于稳定性的排序,受数据状况的...
排序
算法
2021-02-25
0
650
计数排序
9.计数排序 计数排序是一个非基于比较的排序算法,它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 [1] 当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排...
排序
算法
2021-02-25
0
632
桶排序思想
8.桶排序 桶排序 (Bucket sort)是一种排序思想。工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(...
排序
算法
2021-02-25
0
811
堆排序(拓展:堆、优先队列)
7.堆排序(快,不稳,使用较多) 总结 时间复杂度O(N*logN),额外空间复杂度O(1)堆结构非常重要1,堆结构的heapInsert与heapify2,堆结构的增大和减少3,如果只是建立堆的过程,时间复杂度为O(N)4,优先级队列结构,就是堆结构 大根堆的插入heapInsert 将一个数加入...
排序
算法
2021-02-25
0
897
快排(拓展:partition、荷兰国旗问题)
6.快速排序(量大时特快,不稳定,对基础类型 随机快排最常用) 快排的几种写法: (基本快排,随机快排,优化随机快排,双轴快排) 时空分析: 平均时间复杂度:n*logn ;空间复杂度logN (因为要记录断点【放在数组的位置】,用数组记录相等的范围) 如果不用随机快排,最坏时间复杂度为N*2,...
排序
算法
2021-02-25
0
727
归并排序(拓展:递归、master公式、外排、小和、逆序对)
5.归并排序(较快,稳定,对象排序最常用) 1.归并排序: 1.将数组分为两个数组,将两个数组排序后合并;2.子数组的排序可以递归调用归并排序(也可规模较小时用插入排序) 归并分为 mergeSort()分的过程 和merge()合的过程。 mergeSort()分将一个数组均分成左边和右边,左边和...
排序
算法
2021-02-25
0
674
希尔排序(插排的优化)
4.希尔排序(相对较快,不稳定) 思想: 先确定一个间隔,我们从0开始,每经过一个间隔取一个数,把这些数分成一组,把这一组数用插入排序排好。然后将间隔逐渐变小,循环该过程。 为什么比插入排序的效率高? 因为如果1在比较后面的位置,它要排到最前面必须经过很多次交换。如果用希尔排序,因为有间隔,所以只需...
排序
算法
2021-02-25
0
759
插入排序(简单排序中最常用,必掌握)
3.插入排序(小样本,基本有序时最快;稳定) 插入排序在工业和实际中应用比较多,当样本量小于60且基本有序时使用; 使用插入排序,可以保证排序数组的稳定性.经常在归并排序和快排中子数组规模小时使用. 普通插入排序: //插入排序(相对冒泡和选择较好,但时间复杂仍为n**2,空间为1,稳定) //思想...
排序
算法
2021-02-25
0
673
首页
上一页
1
2
下一页
末页