Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public SLList sublist(int start, int end) {
- if (start == end) {
- return NIL;
- } else {
- return new SLList(nth(start), sublist(start+1,end));
- }
- }
- public SLList merge(SLList b) {
- if (b == NIL) {
- return this;
- } else if (this == NIL) {
- return b;
- } else if ((int)this.item <= (int)b.item) {
- return new SLList(this.item, this.next.merge(b));
- } else {
- return new SLList(b.first(), this.merge(b.rest()));
- }
- }
- public SLList mergesort() {
- //System.out.println("61229");
- int sli = this.length();
- if (sli <= 1) {
- return this;
- }
- else {
- int middle = sli/2;
- SLList left = this.sublist(0, middle);
- SLList right = this.sublist(middle, sli);
- left = left.mergesort();
- right = right.mergesort();
- return left.merge(right);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement