简单选择排序&冒泡排序&快速排序

来源:互联网 发布:软件接口安全设计 编辑:程序博客网 时间:2024/05/21 22:30

一,简单选择排序

package cn.cque.test;


public class SimpleSelectSort {


public static void main(String[] args) {

int[] arr=new int[]{1,2,34,0,77,3,4,2,1};

for(int i=0;i<arr.length;i++){

int min=i;

for(int j=i+1;j<arr.length;j++){

if(arr[min]>arr[j]){

min=j;

}

}

if(i!=min){

int temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;

}
/* for(int b:arr){
System.out.print(b+"   ");

}
System.out.println();*/

}
for(int b:arr){
System.out.print(b+"   ");

}


}


}




二,,冒泡排序


package cn.cque.test;


public class BubbleSort {





public static void main(String[] args) {

int[] arr=new int[]{100,2,0,3,4,5,0,23,23,55};


for(int i=0;i<arr.length;i++){

for(int j=0;j<arr.length-1-i;j++){

if(arr[j]>arr[j+1]){

swap(arr, j, j+1);

}


}

}
for(int i=0;i<arr.length;i++){

System.out.print(arr[i]+" ");

}

}


public static void swap(int[] arr,int a,int b){

//arr[a]与arr[b]交换位置

int temp;

temp=arr[a];

arr[a]=arr[b];

arr[b]=temp;



}


}

============================================================================================

package cn.cque.demo;


public class QuickSortDemo {


public static void main(String[] args) {

// int[] arr={1,3,5,6,2,7,5};

int[] arr={7,6,3,5,4,8,2};

quickSort(arr, 0, arr.length-1);

print(arr);

}

public static void quickSort(int[] arr,int L,int R){

//设置一个起始位置,L,R
int i=L;

int j=R;

int midle=arr[(L+R)/2];//设置一个基准点,以重点为基准点

while(i<=j){

while(arr[i]<midle){/**
*i往右边走,j往左边走,比基准点大的数放在右边,比基准点小*的数放在左边
*/
i++;

}
while(arr[j]>midle){

j--;

}

if(i<=j){
/**

* i与j交换位置
*/

int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;

}
/**
* 当i与j交叉的时候地柜调用


*/

if(i<R){
quickSort(arr, i, R);

}
if(j>L){

quickSort(arr, L, j);

}



}


}

public static void print(int[] arr){
for(int b:arr){

System.out.print(b+" ");
}

}


}