欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

2021-01-12

程序员文章站 2022-06-25 11:27:42
java里常见的集合有什么特点java 中的集合分为,单列集合Collection,双列集合Map。Collection 分为:List 、 SetList有序可重复 分为ArrayList、Vector、LinkedList:ArrayList:底层实现是数组,查询快,增删慢,线程不安全,效率高,每次扩容为当前容量的1.5倍+1;Vector:底层实现是数组,查询快,增删慢,线程安全,效率低,扩容机制为翻倍;LinkedList:底层实现是双向链表,增删快,查询慢,线程不安全,效率高;Set...

算法分析——合并排序算法

算法设计及描述

1.设置三个指针i,j,k;其中i和j指示两个待排序序列中当前需比较的元素,k指向辅助数组B中待放置元素的位置。

2.比较A[i]和A[j]的大小关系,小的取出来,如果A[i]小于等于A[j],则B[k]=A[i],同时将指针i和k分别推进一步;反之,B[k]=A[j],同时将指针j和k分别推进一步;如此反复,直到其中一个序列为空。

3.然后,将非空序列中的剩余元素按原次序全部放到辅助数组B的尾部。最后,将合并后的序列复制回数组A中。

合并排序算法

void Merge(int A[],int low,int middle,int high)
{
int i,j,k;
int *B=new int[high-low+1];
i=low;
j=middle+1;
k=low;
while(i<=middle&&j<=high)        //两个子序列未空
if(A[i]<=A[j])   B[k++]=A[i++];
else B[k++]=A[j++];
while(i<=middle)  B[k++]=A[i++];     //左边未空
while(j<=high)  B[k++]=A[j++];         //右边未空
for(i=low;i<=high;i++)  A[i++]=B[i++];    //将合并后的序列复制回数组A中
}

本文地址:https://blog.csdn.net/qq_46113430/article/details/112549137

相关标签: 笔记