1. 程式人生 > >陣列排序演算法

陣列排序演算法

進行排序,方便統計與查詢

1、氣泡排序

思想:

氣泡排序:總是將小數往前放,大數往後放,反之亦然,對不比相鄰的元素值,如果滿足條件就交換位置,把較小的元素移動到陣列前面,把較大的元素移動到陣列的後面(也就是交換資料),這樣較小的元素就像氣泡一樣從底部上升到頂部

實現:

public static void main(String[] args) {
    //冒泡

        int[] arr = {125, 120, 24, 23, 25,125, 120, 24, 23, 25 ,30 ,50 ,80};
        for (int i = 0; i <
arr.length - 1; i++) { int flag = 0; for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { flag = arr[j]; arr[j] = arr[j+1]; arr[j+1] = flag; } } }
System.out.println(Arrays.toString(arr)); }

2、直接選擇排序

思想:

直接選擇排序是將指定位置與其他陣列元素分別比較,如果滿足條件就交換元素,注意:這裡與氣泡排序的區別是,不是交換相鄰的元素,而是把滿足條件的元素與指定的排序位置交換,與氣泡排序相比,直接排序的交換次數較少,速度會快一些

實現:

	   int[] arr = {125, 50, 24, 23, 25, 79, 120, 5, 7, 9, 12, 12, 3, 15};
       int index = 0;
       for (int
i = 1; i < arr.length; i++) { index = 0; for (int j = 1; j <= arr.length - i; j++) { if (arr[j] > arr[index]) { index = j; } } int flag = arr[arr.length - i]; arr[arr.length - i] = arr[index]; arr[index] = flag; } System.out.println(Arrays.toString(arr));