1.LinkedList插入排序

给定空List集合,一个个的插入数字到该List,要求任何时候这个List都是有序的。

例:

插入3,List: 3

再插入2,List: 2,3

再插入15,List: 2,3,15

再插入7,List: 2,3,7,15

import java.util.LinkedList;
import java.util.List;

public class SortList {
    private List<Integer> sorted = new LinkedList<>();

    /**
     * 插入算法排序
     * @param e
     */
    public void addElement(int e){
        boolean inserted = false;
        //非首次插入需要遍历集合,找到比插入值大的数所在索引并插入
        for (int i = 0; i < sorted.size(); i++) {
            if (e < sorted.get(i)){
                sorted.add(i,e);
                inserted = true;
                break;
            }
        }
        //首次插入或者插入的值最大,添加到集合最后
        if (!inserted){
            sorted.add(e);
        }
    }

    /**
     * 输出集合元素到控制台(测试时用)
     */
    public void printList(){
        for (Integer integer : sorted) {
            System.out.print(integer + "\t");
        }
    }
}

测试类:

public class SortListTest {
    public static void main(String[] args) {
        SortList slist = new SortList();
        slist.addElement(3);
        slist.addElement(2);
        slist.addElement(15);
        slist.addElement(7);
        slist.printList();
    }
}

结果:

 

posted @ 2020-04-16 10:50  倾心碳酸饮料  阅读(582)  评论(0)    收藏  举报