public class Sort {
public static void main(String[] args) {
int[] arr={6,8,5,4,2,1,0,9,0,7,3};
int[] tmp = new int[arr.length];
quickSort(arr,0,arr.length-1);
for (int i : arr) {
System.out.print(i+" ");
}
}
private static void quickSort(int[] arr, int left, int right) {
if(left<right){
int tmp = quick(arr,left,right);
quickSort(arr,left,tmp-1);
quickSort(arr,tmp+1,right);
}
}
private static int quick(int[] arr, int left, int right) {
int tmp = arr[left];
while (left<right){
while (left<right && arr[right]>tmp){
right--;
}
if(left<right){
arr[left++] = arr[right];
}
while (left<right && arr[left]<=tmp){
left++;
}
if(left<right){
arr[right--] = arr[left];
}
}
arr[left] = tmp;
return left;
}
private static void mergeSort(int[] arr, int low, int high, int[] tmp) {
if(low<high){
int mid = (low+high)/2;
mergeSort(arr,low,mid,tmp);
mergeSort(arr,mid+1,high,tmp);
merge(arr,low,mid,high,tmp);
}
}
private static void merge(int[] arr, int low, int mid, int high, int[] tmp) {
int i=0;
int j=low,k=mid+1;
while (j<=mid && k<=high){
if(arr[j]<arr[k]){
tmp[i++] = arr[j++];
}else {
tmp[i++] = arr[k++];
}
}
while (j<=mid){
tmp[i++] = arr[j++];
}
while (k<=high){
tmp[i++] = arr[k++];
}
for(int t=0;t<i;t++){
arr[low+t] = tmp[t];
}
}
public static void selectSort(int[] arr, int n){
if(n<=1) return;
for(int i=0;i<n;i++){
int min = i;
for(int j=i;j<n;j++){
if(arr[j]<arr[min]){
min = j;
}
}
if(min!=i){
int tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
}
}
}
public static void insertSort(int[] arr, int n){
if(n<=1) return;
for(int i=1;i<n;i++){
int value = arr[i];
int j=i-1;
for(;j>=0;j--){
if(arr[j]>value){
arr[j+1] = arr[j];
}else {
break;
}
}
arr[j+1] = value;
}
}
public static void bubbleSort(int[] arr, int n){
if(n<=1) return;
for(int i=0;i<n;i++){
boolean flag = false;
for(int j=0;j<n-i-1;j++){
if(arr[j]>arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
flag = true;
}
}
if(!flag){
break;
}
}
}
}
版权声明:本文为qq_41211642原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。