# QuickSort Algorithm

**URL:** https://forum.kirupa.com/t/quicksort-algorithm/305648
**Category:** programming
**Created:** [March 1, 2010, 10:57am UTC](https://forum.kirupa.com/t/quicksort-algorithm/305648 "2010-03-01T10:57:53Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![habes](https://avatars.discourse-cdn.com/v4/letter/h/e5b9ba/32.png) [@habes](https://forum.kirupa.com/u/habes)
#### Post date: [March 1, 2010, 10:57am UTC](https://forum.kirupa.com/t/quicksort-algorithm/305648/1 "2010-03-01T10:57:53Z")

</div>

Hi All,  
I’m working on a quick sort algorithm, and I’m not sure where I am going wrong. Any ideas as to what is causing my problem? The algorithm won’t sort an array completely.

```auto
public class QuickSort {

	int[] dataArray;

	public QuickSort(int[] input) {
		dataArray = input;
		qSort(0, dataArray.length-1);
	}
	
	public void qSort(int start, int end) {
		int temp = 0;
		int left = start;
		int right = end;
		int pivot = 0;
		while(left<right) {
			while(dataArray[left] < dataArray[pivot])
				left++;
			while(dataArray[right] > dataArray[pivot])
				right--;
			if(left<right)
				temp = dataArray[left];
				dataArray[left] = dataArray[right];
				dataArray[right] = temp;
		}
		if(left == right) {
			if(dataArray[left]>dataArray[right]) {
				temp = dataArray[left];
				dataArray[left] = dataArray[right];
				dataArray[right] = temp;
			}
		}
		if(left<right) {
		temp = dataArray[left-1];
		dataArray[left-1] = dataArray[pivot];
		dataArray[pivot] = temp;
		pivot = (start+end)/2;
		qSort(start, pivot-1);
		qSort(pivot+1, end);
		}
	}
	
	public int[] getArray() {
		return dataArray;
	}
}

```

Thanks for any help!
