private void sortStep(List<T> list, Deque<int[]> stack) {

		temp = stack.pop();
		first = temp[0];
		last = temp[1];

		boundLo = first;
		boundHi = last;
		pivot = last;

		while(first < last) {
			if(list.get(first).doubleValue() >= list.get(pivot).doubleValue()) {
				last--;
				if(first != last) 
					Collections.swap(list, first, last);			
				Collections.swap(list, last, pivot);
				pivot--;
			}
			else first++;
		}

		if(boundLo < (pivot - 1)) 
			stack.add(new int[] {boundLo, pivot - 1});
		
		if(boundHi > (pivot + 1)) 
			stack.add(new int[] {pivot + 1, boundHi});
	}