1. 程式人生 > >Java學習之路 幾大排序演算法練習

Java學習之路 幾大排序演算法練習

幾大排序演算法練習

1、各種排序演算法**

  1. 氣泡排序 (Bubble Sort)
  2. 選擇排序 (Selection Sort)
  3. 插入排序 (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));
	}
}

程式實現: 在這裡插入圖片描述