选择排序
public class Solution {
/**
* @param A an integer array
* @return void
*/
public void sortIntegers(int[] A) {
// Write your code here
if(A == null) return;
if(A.length == 1) return;
int min;
int tmp = 0;
int flag = 0;
for(int i=0;i < A.length ;i++)
{
tmp = 0;
min = A[i];
for(int j=i+1;j<A.length;j++)
{
if(A[j] < min)
{
min = A[j];
flag = j;
tmp++;
}
}
if(tmp > 0) //只能够这么着写,因为JAVA不支持引用传递
{tmp = A[i];
A[i] = A[flag];
A[flag] = tmp;
}
}
return;
}
}
// 双路快快速排序
public class Solution {
/**
* @param A: an integer array
* @return: nothing
*/
public int partiton(int A[], int l, int r)
{
int i = l + 1;
int j = r;
int tmp;
while(true)
{
while( i <= r && A[i] < A[l]) i++;
while( j >= l+1 && A[j] > A[l]) j--;
if(i > j) break;
else{
tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
i++;j--;
}
tmp = A[l];
A[l] = A[j];
A[j] = tmp;
return j;
}
public void quickSort(int A[], int l, int r)
{
if(l >= r) return;
int p = partiton(A, l, r);
quickSort(A, l, p-1);
quickSort(A, p+1, r);
}
public void sortIntegers2(int[] A) {
// write your code here
int n = A.length;
int l = 0;
int r = n - 1;
quickSort(A, l, r);
}
}