package com.chai;
public class Bubble_sort {
public static void main(String args[]) {
//冒泡排序
int[] arry= new int[]{31,32,43,42,35,43};//创建一个数组
for(int w=0; w<arry.length-1;w++) {//循环arry的长度次数遍
for(int q=0; q<arry.length-1-w;q++) {//随着外层循环次数减少而减少
if(arry[q]>arry[q+1]) {//如果后面一个数比前面一个数大
int temp=arry[q];
arry[q]=arry[q+1];//将后面一个数给到前面一个数
arry[q+1]=temp;//将前面一个数给到后面一个数
}
}
}
for(int i=0; i<arry.length; i++) {
System.out.println(arry[i]);//将排序好的数组打印出来
}
System.out.println("===");
int[] arr = { 49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22 };
quickSort(arr,0,arr.length-1);
for(int i : arr) {
System.out.println(i);
}
selectSort(arr);
for(int w : arr) {
System.out.println(w);
}
}
//快速排序
private static void quickSort(int[] arr, int low, int high) {
int key=arr[low];//设置基准目标的值
int start=low;//保存数值开始位置的初始值
int end =high;//保存数组结束位置的初始值;
while(start<end) {
while(start<end&&arr[end]>=key) {//如果目标数比基准数大,则不断减少end的值,直至找到比基准小的数
end--;
}
if(arr[end]<key) {//如果目标数小于基准数,则交换两个数的位置
int temp=arr[end];
arr[end]=arr[start];
arr[start]=temp;
}
while(start<end&&arr[start]<=key) {//如果目标数比基准数小,则不断减少end的值,直至找到比基准小的数
start++;
}
if(arr[start]>key) {//如果目标数大于基准数,则交换两个数的位置
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
//这部分的数据都是小于准基数,通过递归在进行一趟快排
if(end<high) {
quickSort(arr,end+1,high);
}
if(start>low) {
quickSort(arr,low,start-1);
}
}
//选择排序
public static void selectSort(int [] aa) {
for(int a=0; a<aa.length-1;a++) {
for(int b=a+1;b<aa.length;b++) {
if(aa[b]<aa[a]) {//找到最小的数组,放到第一位。
int temp=aa[b];
aa[b]=aa[a];
aa[a]=temp;
}
}
}
}
}
选择排序
冒泡排序
快速排序