Java學習之路 幾大排序演算法練習
阿新 • • 發佈:2018-12-18
幾大排序演算法練習
1、各種排序演算法**
- 氣泡排序 (Bubble Sort)
- 選擇排序 (Selection Sort)
- 插入排序 (Insertion Sort) 氣泡排序(Bubble Sort) 基本思想是對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移到陣列的前面,把大的元素移到到陣列的後面(就是交換兩個元素的位置),這樣較小的元素就像氣泡一樣從底部上升到了頂部。 演算法實現
public class BubbleSort{ public static void main(String []args){ int []array ={89,45,68,90,29,34,17}; for(int i=0;i<array.length;i++){ // 比較相鄰兩個元素,較大的往後。 for(int j=0;j<array.length-i-1;j++){ if(array[j]>array[j+1]){ int temp = array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } System.out.println(Arrays.toString(array)); } }
程式結果: 選擇排序 (SelectionSort) 基本思想是:選擇排序開始的時候。我們要掃描整個陣列,找到它的最小值,然後和第一個元素交換,將最小的元素放到第一位,接下來在掃描找出下一個最小的元素和第二個元素交換位置。依次下去 演算法實現
Import java,util.Arrays; public class SelectionSort{ public static void main(String []args){ int []array ={89,45,68,90,29,34,17}; for(int i=0;i<array.length-1;i++){ int min=i; for(int j=i+1;j<array.length;j++){ if(array[j]<array[min]){ min=j; } } int temp =array[i]; array[i]=array[min]; array[min]=temp; } System.out.println(Arrays.toString(array)); } }
程式實現:
插入排序 (Insertion Sort) 基本思想: 1.從第一個元素開始,該元素可以認為已經被排序 2.取出下一個元素,在已經排序的元素序列中從後向前掃描 3.如果該元素(已排序)大於新元素,將該元素移到下一位置 4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 5.將新元素插入到該位置後 重複步驟2~5 如果比較操作的代價比交換操作大的話,可以採用二分查詢法來減少比較操作的數目。該演算法可以認為是插入排序的一個變種,稱為二分查詢插入排序。 演算法實現:
import java.util.*; /* * 插入排序 InsertionSort */ public class InsertionSort{ public static void main(String []args){ int []array ={89,45,68,90,29,34,17}; for(int i=1;i<array.length;i++){ int temp=array[i]; int j=i-1; while( j>=0&&array[j]>temp){ array[j+1]=array[j]; j=j-1; } array[j+1]=temp; } System.out.println(Arrays.toString(array)); } }
程式實現: