trying iterators

This commit is contained in:
2020-06-17 14:33:42 -05:00
parent beb6d741a8
commit 2b2097c7d2

View File

@@ -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;
} }