Mercurial > hg > Members > tatsuki > Alice
diff src/main/java/alice/test/codesegment/local/bitonicsort/DataList.java @ 345:8f71c3e6f11d
Change directory structure Maven standard
author | sugi |
---|---|
date | Wed, 16 Apr 2014 18:26:07 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/alice/test/codesegment/local/bitonicsort/DataList.java Wed Apr 16 18:26:07 2014 +0900 @@ -0,0 +1,75 @@ +package alice.test.codesegment.local.bitonicsort; + +import org.msgpack.annotation.Message; + +@Message +public class DataList { + + public int[] table; + + public DataList(int size){ + table = new int[size]; + } + + public DataList(int[] numbers){ + table = numbers; + } + + public DataList createDataList(int start, int size){ + int[] table2 = new int[size]; + int end = start+size; + for (int i=start,j=0;i<end;i++,j++){ + table2[j] = table[i]; + } + return new DataList(table2); + } + + public void swap(int i, int j){ + int tmp = table[i]; + table[i] = table[j]; + table[j] = tmp; + } + + public void showData(){ + for (int aTable : table) { + System.out.print(aTable + " "); + } + System.out.println(); + } + + public void showData(int range){ + for(int i = 0;i<range;i++){ + System.out.print(table[i]+ " "); + + } + System.out.println(); + } + + public void showSize(){ + System.out.print("size is "+this.table.length+". "); + } + + public int getSize(){ + return this.table.length; + } + + public static void merge(DataList list1, DataList list2) { + int[] t1 = list1.table; + int[] t2 = list2.table; + int[] t0 = list1.table.clone(); // copy to avoid destroy t1 + int i = 0, j= 0,n=0; + while (i< t0.length) { + if (n>=t1.length) { // switch to the second list + t1 = t2; n = 0; + } + if (j>=t2.length || t0[i] < t2[j]) { + t1[n] = t0[i]; // including when j reaches end of t2 + i++; n++; + } else { + t1[n] = t2[j]; + j++; n++; + } + } + } + +}