One-way QuickSort implemented in Java

The codes might be not optimized, and the first elements of all arrays are chosen as the pivots, which will cause a tremendous slow-down when the array is sorted already.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static void swap(int[] ar, int a, int b){
	int tmp = ar[a];
	ar[a] = ar[b];
	ar[b] = tmp;
}
public static int partition(int[] a, int left, int right) {
	int pivot=a[left];
	int m=left;
	for(int i=left+1;i<=right;i++){
		if (a[i]<pivot){
			m++;
			swap(a, i, m);
		}	
	}
	swap(a, left, m);
	return m;
}
public static void quicksort(int[] a, int left, int right){
	if (left>=right)
	return;
	int pivotIndex = partition(a, left, right);
	quicksort(a, left, pivotIndex-1);
	quicksort(a, pivotIndex+1, right);
}