数组利用有序链表排序

来源:互联网 发布:工艺仿真软件 编辑:程序博客网 时间:2024/04/28 04:29
public class Link {    public long lData;    public Link next;//reference to next Link    public Link(long lData){        this.lData=lData;    }}
public class SortedList {    private Link first;    public SortedList(){        first =null;    }    public SortedList(Link[] linkArr){        first=null;        for(int j=0;j<linkArr.length;j++){            insert(linkArr[j]);        }    }    public void insert(Link k){        Link previous =null;        Link current=first;        while(current!=null&&k.lData>current.lData){            previous=current;            current=current.next;        }        if(previous==null){            first=k;        }        else            previous.next=k;        k.next=current;    }    public Link remove(){        Link temp =first;        first=first.next;        return temp;    }}
public class ListInsertionSortApp {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        int size =10;        Link[] linkArray =new Link[size];         for(int j=0;j<size;j++){            int n = (int) (Math.random()*99);            Link newLink =new Link(n);            linkArray[j]=newLink;        }        System.out.print("Unsorted array:");        for(int j=0;j<size;j++){            System.out.print(linkArray[j].lData+" ");        }        System.out.println();        SortedList theSortedList = new SortedList(linkArray);        for(int j=0;j<size;j++){            linkArray[j]=theSortedList.remove();        }        System.out.print("Sorted array:");        for(int j=0;j<size;j++){            System.out.print(linkArray[j].lData+" ");        }    }}
1 0
原创粉丝点击