zoukankan      html  css  js  c++  java
  • 归并排序-对两个有序链表合并成一个有序链表

    需求

    两个量表:

    链表A:1-3-5-7-9
    
    链表B:2-4-6-8-10

    将上面的链表A和链表B合并成一个链表C,最终的顺序:

    链表C:1-2-3-4-5-6-7-8-9-10

    解决

    使用归并排序中的合并阶段进行合并排序操作

    public class guibing_list {
        public static void main(String[] args) {
            List<Integer> list1 = new ArrayList<Integer>();
            list1.add(1);
            list1.add(3);
            list1.add(5);
            list1.add(7);
            List<Integer> list2 = new ArrayList<Integer>();
            list2.add(2);
            list2.add(4);
            list2.add(6);
            list2.add(8);
            List<Integer> list3 = new ArrayList<Integer>(list1.size()+list2.size());
            sort(list1 , list2 , list3);
    
            for(Integer in:list3){
                System.out.print(in + " ");
            }
            System.out.println();
    
        }
    
        public static void sort(List<Integer> list1 , List<Integer> list2 , List<Integer> result){
            int i = 0 ;//定义左指针
            int j = 0 ;//定义右指针
            //
            while (i <= list1.size()-1 && j <= list2.size()-1){
                if(list1.get(i) <= list2.get(j)){
                    result.add(list1.get(i++));
                }else{
                    result.add(list2.get(j++));
                }
            }
            //将剩余部分添加到list中
            while (i <= list1.size()-1){
                result.add(list1.get(i++));
            }
            while (j <= list2.size()-1){
                result.add(list2.get(j++));
            }
        }
    }
  • 相关阅读:
    Xshell6配置ssh免密码登录虚拟机
    编程语言的各种区别
    unity_小功能实现(敌人追踪主角)
    unity_小功能实现(敌人巡逻功能)
    Unity Editor已停止工作
    unity之初级必备知识
    unity之中级工程师
    iTween基础之功能简介
    C#数据结构_查找
    C#数据结构_排序
  • 原文地址:https://www.cnblogs.com/niutao/p/10610059.html
Copyright © 2011-2022 走看看