您的位置:首页 > 其它

排序算法

2017-02-09 08:37 204 查看
package cn.hanb.study.action;

public class Main {

//冒泡排序 在一次排序后,把最小的元素放在最前面。时间复杂度O(n^2)

public static int[] BubbleSort(int[] arr){

if(arr==null||arr.length==0){

return null ;

}else{

int size=arr.length;

for(int i=0;i<size;i++){

for(int j=size-1;j>i;j++){

if(arr[j]<arr[j-1]){

swap(arr,j-1,j);

}

}

}

return arr;

}

}

//选择排序 只在确定了最小数的前提下才进行交换,大大减少了交换的次数。时间复杂度O(n^2)

public static int[] SelectSort(int[] arr){

if(arr==null||arr.length==0){

return null;

}else{

int size=arr.length;

for(int i=0;i<size;i++){

int min=i;

for(int j=i+1;j<size;j++){

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

min=j;

}

}

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

swap(arr,i,min);

}

}

return arr;

}

}

public static void main(String[] args) {

int[] p = new int[]{4,2,6,3,8,1};

BubbleSort(p);

System.out.println(p[0]+" "+p[1]+" "+p[2]+" "+p[3]+" "+p[4]+" "+p[5]);

}

public static void swap(int[] arr,int i,int j){

int n=arr[i];

arr[i]=arr[j];

arr[j]=n;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: