美文网首页
常见的几种排序算法

常见的几种排序算法

作者: 或或是猪猪吗 | 来源:发表于2018-10-10 16:03 被阅读0次

1.冒泡算法

代码:

private void bubbleSort(int[] arr) {

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

boolean flag = false;

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

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

int temp=arr[j+1];

arr[j+1]=arr[j];

arr[j]=temp;

flag=true;

}

            }

            if (!flag)

                return;

        }

    }

插入排序:

private  void insertSort(int[] arr) {

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

int j =0;

int temp = arr[i];

for(j = i -1; j >=0&& temp < arr[j]; j--) {

 arr[j +1] = arr[j]; 

 } 

 arr[j +1] = temp; 

 }

希尔排序

private void shellSort(int[] arr) {

intgap = arr.length /2;

while(1<= gap) {

for(inti = gap; i < arr.length; i++) {

intj =0;

int temp = arr[i];

for(j = i - gap; j >=0&& temp < arr[j]; j = j - gap) {

 arr[j + gap] = arr[j]; 

 } 

 arr[j + gap] = temp;

 } 

 gap = gap /2; 

 } 

 }

快速排序:

privatevoid quickSort(int[] arr,intleft,intright) {if(left<right){

int baseIndex = division(arr,left,right); 

 quickSort(arr,left, baseIndex -1); 

 quickSort(arr, baseIndex +1,right); 

 }

 }

private int division(int[] arr,intleft,intright) {

int base = arr[left];

while(left< right && arr[right] >= base) {

right--; 

 } 

 arr[left] = arr[right];

while(left< right && arr[right] <= base) {

left++; 

 }

arr[right] = arr[left];

}

arr[left]=base;

return left;

}

选择排序/

private void selectSort(int[] arr) {

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

int index= i;

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

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

index= j;

 }

 }

int temp = arr[i]; 

 arr[i] = arr[index];

 arr[index] = temp;

 } 

 }

相关文章

网友评论

      本文标题:常见的几种排序算法

      本文链接:https://www.haomeiwen.com/subject/xnvpaftx.html