冒泡与快排(更新中)
冒泡排序
快速排序
import java.util.Arrays;
public class SortFun {
public void bubbleSort(int[] arr){
int n = arr.length;
if(n<=1){
return ;
}
for (int i=0; i< n;++i){
boolean flag = false; //判断是否是已经排序好的
for (int j=0;j< n-i-1;++j){ // 每一次排序都会排好一个位置 (n-i-1)减掉了排到最后位置的已经排序好的序列';
if(arr[j] > arr[j+1]){
//将最大值往后排
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag) break;
System.out.println("第"+i+"次排序后结果: "+Arrays.toString(arr));
}
}
public void swap(int []arr,int index1,int index2){
if(arr != null && arr.length>1){
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
}
public void QuickSort(int[] arr,int low,int high){
if(arr == null || arr.length<=1){
return;
}
int start = low;
int end = high;
int target = arr[start];
while (start < end){
while (start < end && arr[end] > target){
end--;
}
swap(arr,start,end);
while (start < end && arr[start] < target){
start++;
}
swap(arr,start,end);
}
if((start-1) > low ){
QuickSort(arr,low,(start-1));
}
if((end+1) < high){
QuickSort(arr,(end+1),high);
}
}
public static void main(String[] args) {
int[] a = {1,2,6,4,5};
SortFun sf = new SortFun();
// sf.bubbleSort(a);
sf.QuickSort(a,0,4);
System.out.println(Arrays.toString(a));
}
}
网友评论