Files
Tutoring-APCompSci/Sorting/NumberInsertionSorterLinkedList.java

43 lines
1.4 KiB
Java

package Sorting;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.ListIterator;
public class NumberInsertionSorterLinkedList extends NumberSorter{
public NumberInsertionSorterLinkedList(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 index=0;
ListIterator<Integer> iter = numbersLL.listIterator();
while(index<numbersLL.size()&&iter.hasNext()){
int value = iter.next();
iter.remove();
if(iter.hasPrevious()){
int current=value;
do{
current = iter.previous();
}while(compare(current,value)>0 && iter.hasPrevious());
if(compare(current,value)<0){
iter.next();
}
}
iter.add(value);
while(iter.nextIndex()<=index){
iter.next();
}
index++;
}
/*
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;
}
}