trying iterators
This commit is contained in:
@@ -2,6 +2,7 @@ package Sorting;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
|
||||||
public class InsertionSorterLinkedList extends Sorter{
|
public class InsertionSorterLinkedList extends Sorter{
|
||||||
|
|
||||||
@@ -10,20 +11,27 @@ public class InsertionSorterLinkedList extends Sorter{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void sort(){
|
protected void sort(){
|
||||||
LinkedList<Integer> numbersll = new LinkedList<Integer>(Arrays.asList(numbers));//make a linked list from numbers array
|
LinkedList<Integer> numbersLL = new LinkedList<Integer>(Arrays.asList(numbers));//make a linked list from numbers array
|
||||||
for(int i=1;i<numbersll.size();i++){
|
|
||||||
int value = numbersll.get(i);
|
int countOuter=0;
|
||||||
int j=i-1;
|
while(countOuter<numbersLL.size()){
|
||||||
while(j>=0 && compare(numbersll.get(j),value)>0){
|
ListIterator<Integer> outerIterator = numbersLL.listIterator(countOuter);
|
||||||
j--;
|
int value = numbersLL.get(countOuter);
|
||||||
}
|
ListIterator<Integer> innerIterator = numbersLL.listIterator();
|
||||||
numbersll.add(j+1, numbersll.remove(i));
|
int current, countInner;
|
||||||
|
countInner = 0;
|
||||||
|
do{
|
||||||
|
current = innerIterator.next();
|
||||||
|
countInner++;
|
||||||
|
}while(countInner<=countOuter && compare(value, current)>0);
|
||||||
|
numbersLL.add(innerIterator.previousIndex(), numbersLL.remove(countOuter));
|
||||||
|
countOuter++;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
for(int i=0;i<numbers.length;i++){
|
for(int i=0;i<numbers.length;i++){
|
||||||
writeToArray(numbers, i, numbersll.removeFirst());//write sorted linked list back into array
|
writeToArray(numbers, i, numbersll.removeFirst());//write sorted linked list back into array
|
||||||
}*/
|
}*/
|
||||||
numbersll.toArray(numbers);
|
numbersLL.toArray(numbers);
|
||||||
writesUsed += numbers.length;
|
writesUsed += numbers.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user