天天看點

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

1、快速排序

package com.entity;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

Arrays.sort(arr);

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

System.out.println(arr[i]);

}

}

}

快速排序法,它隻能按從小到大排序。

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

2、冒泡排序

它的原理,依次比較相鄰的兩個數,按從小到大來排序,将小數放在前面,大數放在後面。即在第一遍:首先比較第1個和第2個數,将小數放前,大數放後。然後比較第2個數和第3個數,将小數放前,大數放後,如此繼續,直至比較最後兩個數,将小數放前,大數放後。

package com.entity;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

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

for (int j =0; j < arr.length-1-i; j++) { //這個j-1-i要注意

if(arr[j]<arr[j+1]){ //這個小于的話是從大到小排序,如果是大于是從小到大排序

int a=arr[j]; //這裡相當于找了個替身

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

arr[j+1]=a;

}

}

}

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

System.out.println(arr[i]);

}

}

}

結果

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

3、選擇排序

選擇排序法是将數組的第一個資料作為最大或者最小的值,然後通過比較循環,輸出有序的數組。

package com.entity;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

//從小到大

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

int max=i; //如果max是等于i的話且下面arr[max]是>arr[j]的,則是從小到大排序

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

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

max=j;

}

if(max!=i){

int a=arr[i];

arr[i]=arr[max];

arr[max]=a;

}

}

}

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

//從大到小   

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

// int max=0;

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

// if(arr[max]<arr[j]){

// max=j;

// }

// if(max!=i){

// int a=arr[i];

// arr[i]=arr[max];

// arr[max]=a;

// }

// }

// } 

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

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

System.out.println(arr[i]);

}

}

}

4、插入排序

插入排序是選擇一個數組中的資料,通過不斷的插入比較最後進行排序。

從小到大

package com.entity;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

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

   for(int j=i;j>0;j--){

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

            int temp=arr[j-1];

            arr[j-1]=arr[j];

            arr[j]=temp;        

        }else break;

   }

}

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

System.out.println(arr[i]);

}

}

}

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

從大到小

把  if (arr[j]<arr[j-1])這個判斷改成>符号就是從大到小排序

java幾種基本的排序方法,快速排序,冒泡排序,選擇排序,插入排序

這些排序都是最基本的。比較簡單。

繼續閱讀