今日算法 两个升序的数组进行排序
2018-03-02 18:00
260 查看
需要注意的是是否去重思想是定义两个指针
都从0开始比较 小的指针向后移动一位 只要小于就移动
进入第二个if 给一个大于的条件
最后剩下的进行添加
如果不想去重 在算法过程中 要add两次 这儿用了一个List 用String 也可以 性能差一点//2个有序数组hebng
public static List<Integer> sort(int[] a,int[] b){
List<Integer> c=new ArrayList<Integer>();
int aIndex=0;
int bIndex=0;
while (true){
if (aIndex>a.length-1||bIndex>b.length-1){
break;
}
if(a[aIndex]<b[bIndex]){
c.add(a[aIndex]);
aIndex++;
}else if(a[aIndex]>b[bIndex]){
c.add(b[bIndex]);
bIndex++;
}else {
c.add(a[aIndex]);
aIndex++;
bIndex++;
}
}
// 将没有超出数组下标的数组其余全部加到数组c中
// 如果a数组还有数字没有处理
if(aIndex<=a.length-1){
for(int i=aIndex;i<=a.length-1;i++){
c.add(a[i]);
}
}else if(bIndex<=b.length-1){
for(int i=bIndex;i<=b.length-1;i++){
c.add(b[i]);
}
}
return c;
}
相关文章推荐
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数使得它们的和正好是输入的那个数字
- 对数组进行排序、求最大值和求元素和的算法都编写为函数模板,采用相关数据进行测试
- 微软算法100题14 在排序数组中找到和为指定数的任意两个元素
- 对数组中的对象进行升序以及降序的排序方法(其中对象类型是系统类型).
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 对数组进行排序、求最大值和求元素和的算法都编写为函数模板,采用相关数据进行测试。
- Java集合与数组实现升序排序的算法设计
- php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
- 两个已排序数组进行合并后的第K大的值--进军硅谷
- 华为OJ——输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 每天学习一算法系列(14) (输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字)
- 给定按升序排序的整数数组,找到给定目标值的起始和终止位置。 您的算法的运行时复杂度必须是O(log n)的顺序。
- C# 数组按照升序排列并输出(分别用冒泡法,选择法,插入法进行排序)。
- 【算法】输入一个已经按升序排过的数组和数字,在数组中查找两个数字,使得它们的和正好是输入那个数字。
- 要求从用户输入的多行文本中提取学生的姓名、学号及登录日期,并封装到 Student 类中作为类的私有属性。创建一个Student类型的对象数组,对学号进行 升序排序并输出。
- 随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,如果
- 随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,如果
- C语随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,
- 每天一道算法题8 在排序数组中查找和为给定值的两个数字
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系