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(); } }
结果:


浙公网安备 33010602011771号