Files
Tutoring-APCompSci/Sorting/InsertionSorterLinkedList.java
2020-06-17 14:33:42 -05:00

38 lines
1.3 KiB
Java

package Sorting;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.ListIterator;
public class InsertionSorterLinkedList extends Sorter{
public InsertionSorterLinkedList(RandomNumberFileReader reader){
super("insertion sort (linked list)", reader);
}
protected void sort(){
LinkedList<Integer> numbersLL = new LinkedList<Integer>(Arrays.asList(numbers));//make a linked list from numbers array
int countOuter=0;
while(countOuter<numbersLL.size()){
ListIterator<Integer> outerIterator = numbersLL.listIterator(countOuter);
int value = numbersLL.get(countOuter);
ListIterator<Integer> innerIterator = numbersLL.listIterator();
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++){
writeToArray(numbers, i, numbersll.removeFirst());//write sorted linked list back into array
}*/
numbersLL.toArray(numbers);
writesUsed += numbers.length;
}
}