1.選擇排序原理
a.將數組中每一個元素與第一個元素比較,若是這個元素小於第一個元素,則交換這倆個元素的位置
b.循環第一條規則,找出最小元素,防於第一個位置
c.通過N-1輪比較完成排序java
package paixu; /** * 選擇排序 */ import java.util.Scanner; public class zy2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("請輸入輸入數字的位數:"); int c = input.nextInt(); int[] a = new int[c]; for (int i = 0; i < a.length; i++) { System.out.print("請輸入輸第" + (i + 1) + "位數字:"); a[i] = input.nextInt(); } int temp = 0; for (int i = 0; i < a.length; i++) { for (int j = i + 1; j < a.length; j++) { if (a[i] > a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); } } 複製代碼
2.冒泡排序原理
a.逐一比較數組中相鄰的兩個元素,若是後面的元素小於前面的元素就互換
b.通過一輪比較,必定有一個最大的排在最後的位置
c.每一次比較剩下的元素,通過N-1次比較能夠實現排序數組
package paixu; /** * 冒泡排序 */ public class zy1 { public static void main(String[] args) { int[] sz = { 8, 6, 5, 4, 3, 1, 2 }; int bl = 0; for (int i = 0; i < sz.length - 1; i++) { for (int j = 0; j < sz.length - 1 - i; j++) { if (sz[j] > sz[j + 1]) { bl = sz[j]; sz[j] = sz[j + 1]; sz[j + 1] = bl; } } } for (int i = 0; i < sz.length; i++) { System.out.print(sz[i] + "\t"); } } }
3.插入排序原理
a.將數組分爲兩部分,將後部分的第一張逐一與前部分每一張比較,若是當前元素小,就移動被比較的元素
b.找到合理位置插入spa
package paixu; /** * 插入排序 */ public class zy3 { public static void main(String[] args) { int[] sz = { 1, 9, 5, 2, 7, 4 }; for (int i = 1; i < sz.length; i++) { int temp = sz[i]; int j; for (j = i - 1; j >= 0; j--) { if (temp < sz[j]) { sz[j + 1] = sz[j];// 元素向後移動 } else { break; } } sz[j + 1] = temp;// 找到合適的位值插入元素 } for (int i = 0; i < sz.length; i++) { System.out.print(sz[i] + " "); } } }