0
点赞
收藏
分享

微信扫一扫

【LeeCode】排序算法

选择排序

import java.util.*;
/**
* 选择排序
*/

public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
System.out.println("初始值" + Arrays.toString(arr));
xuanze(arr);
}

private static void xuanze(int[] arr) {

for(int i = 0; i < arr.length; i++){
for(int j = i; j < arr.length; j++){
if(arr[i] > arr[j]){
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
System.out.println("选择:" + Arrays.toString(arr));
}
}

冒泡排序

import java.util.*;
/**
* 冒泡排序
*/

public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
System.out.println("初始值" + Arrays.toString(arr));
maopao(arr);
}

private static void maopao(int[] arr) {

for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr.length - 1; j++){
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
System.out.println("冒泡:" + Arrays.toString(arr));
}
}


快速排序

import java.util.*;
/**
* 快速排序
*/

public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
kuaisu(arr, 0, arr.length-1);
System.out.println(Arrays.toString(arr));
}

private static void kuaisu(int[] arr, int low, int high) {
int i,j,tmp;
if(low > high){
return;
}

i = low;
j = high;
tmp = arr[low];

while (i < j ){
while (tmp <= arr[j] && i < j ){
j--;
}

while (tmp >= arr[i] && i < j ){
i++;
}

if( i < j ) {
int x = arr[i];
int y = arr[j];
arr[i] = y;
arr[j] = x;
}
}

// i == j , 交换第一轮的基准值到它应该的位置
arr[low] = arr[i];
arr[i] = tmp;

kuaisu(arr, low, j-1);
kuaisu(arr, j+1, high);

}
}

举报

相关推荐

0 条评论