一、冒泡排序
废话不多说,直接上代码!
public int[] sort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length;j++){
if(arr[j]<arr[i]){
arr[i] = arr[i]^arr[j];
arr[j] = arr[i]^arr[j];
arr[i] = arr[i]^arr[j];
}
}
}
return arr;
}
二、选择排序
public int[] sort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int k=i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[k]){
k=j;
}
}
if(i != k){
arr[i] = arr[i]^arr[k];
arr[k] = arr[i]^arr[k];
arr[i] = arr[i]^arr[k];
}
}
return arr;
}
三、快速排序
public void quickSort(int[]arr,int low,int high){
int i,j,temp;
if(low<high){
return;
}
i=low;
j=high;
temp=arr[low];
while(i <j){
//从右往左查询,比基数值小的下标
while(temp<=arr[j] && i<j){
j--;
}
//从左往右查询,比基数值大的下标
while(temp>=arr[i] && i<j){
i++;
}
//如果满足条件,则交换位置
if(i<j){
arr[i] = arr[i]^arr[j];
arr[j] = arr[i]^arr[j];
arr[i] = arr[i]^arr[j];
}
}
//将基数与i和j相等的位置交换
arr[low] = arr[i];
arr[i] = temp;
//左边数组递归调用
quickSort(arr,low,j-1);
quickSort(arr,j+1,high);
}