java排序算法



java排序算法。排序是CODE经常会用到的,在此做一个用JAVA实现的排序算法以供以后忘了的时候有备参考!

首先,在排序过程中,经常会对数组中两个元素进行交换,以下是交换算法:

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

int temp = array[i];

array[i] = array[j];

array[j] = temp;

}

 

1 选择排序

 

选择排序其实在前面已经有一篇文章说明了,不过为了此处能讲全排序算法,再次提及.

 

选择排序在任何情况下都是O(n2)

 

 

public String[] selectionSort(int[] arrayA){

for (int i = 0; i < arrayA.length – 1; i++) {

int minIndex = i;

// Find smallest value

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

int e1 = arrayA[j];

int e2 = arrayA[minIndex];

// Compare two value

if (e1<e2) {

minIndex = j;

}

}

// Swap value if necessary

if (minIndex != i){

swap(arrayA,minIndex,j);

}

}

return arrayA;

}

 

2 冒泡排序

 

对于平均情况,冒泡排序的性能是O(n2)

 

 

public static void bubbleSort(int[] array{

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


boolean swapped=false;

for(int j=0;j<array.length;j++){

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

swap(array,i,j+1);

swapped=tree;

}

}

if(!swapped){

return;

}

}

}

 

 

 

3 插入排序

 

插入排序的最差情况性能是O(n2)

 

 

 

 

public static void insertionSort(int[] array){

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

int itemToInsert=array[i];

int j=i-1;

while(j>=0){

if(itemToInsert<array[j]){

array[j+1]=array[j];

j–;

}

else{

break;

}

}

array[j+1]=itemToInsert;

}

}

 

OK,就到这里了,这是常用的也是数据结构上的三种排序算法,喝杯咖啡去