JAVA 基礎 / 第二十課: 數組 /JAVA 數組選擇法,冒泡法排序

2018-03-12spa

1、選擇法排序:

選擇法排序的思路: 
把第一位和其餘全部的進行比較,只要比第一位小的,就換到第一個位置來;比較完後,第一位就是最小的 
而後再從第二位和剩餘的其餘全部進行比較,只要比第二位小,就換到第二個位置來;比較完後,第二位就是第二小的,以此類推。
3d

public class HelloWorld { public static void main(String[] args) { int a [] = new int[]{18,62,68,82,65,9}; //排序前,先把內容打印出來
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //選擇法排序 //第一步: 把第一位和其餘全部位進行比較 //若是發現其餘位置的數據比第一位小,就進行交換         
        for (int i = 1; i < a.length; i++) { if(a[i]<a[0]){ int temp = a[0]; a[0] = a[i]; a[i] = temp; } } //把內容打印出來 //能夠發現,最小的一個數,到了最前面
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //第二步: 把第二位的和剩下的全部位進行比較
        for (int i = 2; i < a.length; i++) { if(a[i]<a[1]){ int temp = a[1]; a[1] = a[i]; a[i] = temp; } } //把內容打印出來 //能夠發現,倒數第二小的數,到了第二個位置
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //能夠發現一個規律 //移動的位置是從0 逐漸增長的 //因此能夠在外面套一層循環         
        for (int j = 0; j < a.length-1; j++) { for (int i = j+1; i < a.length; i++) { if(a[i]<a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; } } } //把內容打印出來
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); } }

2、冒泡法排序:code

冒泡法排序的思路: 
第一步:從第一位開始,把相鄰兩位進行比較 
若是發現前面的比後面的大,就把大的數據交換在後面,循環比較完畢後,最後一位就是最大的 
第二步: 再來一次,只不過不用比較最後一位,以此類推。
blog

public class HelloWorld { public static void main(String[] args) { int a [] = new int[]{18,62,68,82,65,9}; //排序前,先把內容打印出來
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //冒泡法排序 //第一步:從第一位開始,把相鄰兩位進行比較 //若是發現前面的比後面的大,就把大的數據交換在後面 
        for (int i = 0; i < a.length-1; i++) { if(a[i]>a[i+1]){ int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } //把內容打印出來 //能夠發現,最大的到了最後面
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //第二步: 再來一次,只不過不用比較最後一位
        for (int i = 0; i < a.length-2; i++) { if(a[i]>a[i+1]){ int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } //把內容打印出來 //能夠發現,倒數第二大的到了倒數第二個位置
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //能夠發現一個規律 //後邊界在收縮 //因此能夠在外面套一層循環 
        for (int j = 0; j < a.length; j++) { for (int i = 0; i < a.length-j-1; i++) { if(a[i]>a[i+1]){ int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } } //把內容打印出來
        for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); } }
相關文章
相關標籤/搜索