- 博客(10)
- 收藏
- 关注
原创 sizeCtl含义
sizeCtl为0,代表数组未初始化,且数组的初始容量为16sizeCtl为正数,如果数组未初始化,纪录数组的初始容量,如果已初始化,纪录的是数组的扩容阈值sizeCtl为-1表示正在进行初始化sizeCtl小于0但不是-1表示数组正在扩容,-(1+n)表示有n个线程正在共同完成扩容操作。...
2021-08-08 17:26:46 999
原创 hash算法的要求
1、从hash值不可以反向推导出原始的数据2、输入数据的微小变化会得到完全不同的hash值,相同的数据会得到相同的值。3、执行效率要高效,长的文本也能快速计算出hash值。4、hash算法的冲突概率要小...
2021-08-07 10:46:25 490
原创 arraylist和linkedlist区别
arraylist和linkedlist区别1、数据结构组成:arraylist底层是数组,linkedlist底层是双向链表2、对于随机访问,ArrayList优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随机访问。而LinkedList的每一个元素都依靠地址指针和它后一个元素连接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)3、对于插入和删除操作,LinkedList优于ArrayList,因为当元素被添加到LinkedList任意位置的时候,ar
2021-08-07 10:41:09 165
原创 opencv基于颜色直方图的图像比较
opencv基于颜色直方图的图像比较图像预处理把图像分割,把要检测的图像分割为9个小图像。比如下图为待检索的图像,将其划分为9个小部分,分别对每部分比较最后计算平均值。计算直方图并归一化将图像划分为9个小部分后将图像转换为HSV空间HSV空间的图像检索使用H(色调)和S(饱和度)分量计算直方图并比较。opencv中计算直方图调用函数calcHist,将直方图归一化要调用函数normalize。比较相似度在得到归一化的直方图后,要度量图像的相似度。常用的相似度度量方式有5种,分别是相关性比较(
2020-07-31 19:45:59 1032
原创 java实现快速排序
java快速排序从待排序序列中选择一个数,排序完成后左边的数全比他小,右边的数全比他大。比如选择序列为[4,5,3,6,2,5,1],选择最左边的数4,选择左边的数要从最右边开始比较,1小于4,把1放到4的位置。左指针开始比较,左指针初始位于4的位置,但此时此位置上的数是1,1和4比较,小于4,不动,指针增加指到5,5大于4,,把5放到右指针的位置即原来1的位置。之后右指针开始比较。这样交替比较直到左右指针相遇。一次快排后结果为[1 2 3 4 6 5 5]然后再对4左右的数据序列快排publi
2020-07-31 16:23:19 86
转载 归并排序
java归并排序1、算法思想:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分:问题分成一些小的问题然后递归求解,治:的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。将序列递归拆半分成多个子序列,再将各个子序列排序后归并叠加,最后归并所有子序列,排序完成。2、算法过程举个栗子(第一趟的排序过程)原始序列:49、38、65、97、76、13、271)将原始序列看成7个只含一个元素的子序列,此时序列都是有序
2020-07-31 11:30:40 148
转载 希尔排序
java希尔排序1、算法思想:希尔算法又名缩小增量排序,本质是插入排序,只不过是将待排序的序列按某种规则分成几个子序列,分别对几个子序列进行直接插入排序。这个规则就是增量,增量选取很重要,增量一般选序列长度一半,然后逐半递减,直到最后一个增量为1,为1相当于直接插入排序。2、算法过程举个栗子(第一趟的排序过程)原始序列:49、38、65、97、76、13、27、49,55、041)序列长度为10,所以第一次分割增量len=5,进行分割序列,得到5个子序列子序列1:49
2020-07-30 22:37:46 262
转载 插入排序
java插入排序1、算法思路:每趟将一个待排序的元素作为关键字,按照其关键字值得大小插入到已经排好的部分的适当位置上,知道插入完成。2、算法过程举个栗子(第一趟的排序过程)原始序列:49、38、65、97、76、13、27、491)开始以第一个元素49为关键字,看成一个序列,其余数看成另一个序列,此时一个关键字数49序列是有序的。结果:{49} {38、65、97、76、13、27、49}2)插入38。38<49,所以49向后移动一个位置,38插入到原49位置结果:{38、49}
2020-07-30 16:59:16 157
转载 java选择排序实现
java选择排序1、算法思想:选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。2、算法过程举个栗子(第一趟的排序过程)原始序列:49、38、65、97、76、13、27、491)在进行选择排序过程中分成有序和无序两个部分,开始都是无序序列结果:49、38、65、97、76、13、27、492)从无序序列中取出最小的元素13,将13同无序序列第一个元素交换,此时产生仅含一个元素的有序序列,无序序列减一结果:{13
2020-07-30 15:59:24 237
原创 java实现冒泡排序
java冒泡排序实现(1)要排序数组:[10,1,35,61,89,36,55](2)第一趟排序:第一次排序:10和1比较,10大于1,交换位置 [1,10,35,61,89,36,55]第二趟排序:10和35比较,10小于35,不交换位置 [1,10,35,61,89,36,55]第三趟排序:35和61比较,35小于61,不交换位置 [1,10,35,61,89,36,55]第四趟排序:61和89比较,61小于89,不交换位置 [1,10,35,61,89,36,55]第五
2020-07-30 15:42:35 143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人