前言
通過這兩天學習各種排序算法,深刻的認識到了想出這些排序算法的真的好牛逼!被深深的折服,果真我是個菜雞!!
所以呢,對於前人的成果,自己只要好好學習就夠了,畢竟牛頓大佬說過,站在巨人的肩膀上!!我就當那個站在巨人的肩膀上的人吧,讓我膜拜巨人!
好了,言歸正傳,今天研究了後面的幾種排序算法,但是呢自己覺得懂了,但是又覺得自己不懂,所以對於這種似懂非懂的狀態,最好的解決辦法就是用到項目中去,於是把以前的項目翻出來,把以前自己曾經用冒泡排序寫的邏輯改成了其它幾種排序方法來實踐,當然了最後覺得還是不是太懂。
好了,話不多說,上代碼:
import java.util.Arrays;
/**
* @author Administrator
*
* 在選擇排序中,設定一個已排序的空數組,將未排序的設定爲一個數組
* 然後在未排序的數組中查找最小的值放到已排序的數組中
* 那麼已排序的數組中每次放入的都是最小的值,並且是依次排列的
* 這樣就可以將未排序的數組進行的選擇排序
*/
public class selectSort {
/**
* 選擇排序方法
* @param array
*/
public static void selectSort(int[] array){
//定義一個已排序的空序列
for (int i = 0; i < array.length; i++) {
//定義最小值
int minIndex = i;
//定義未排序的序列
for (int j = i; j < array.length; j++) {
//如果未排序序列中存在比minIndex小的值,則將該值賦值給minIndex
if(array[minIndex]>array[j]){
minIndex = j;
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
public static void main(String[] args) {
int[] arr = new int[5];
arr[0]=2;
arr[1]=5;
arr[2]=4;
arr[3]=3;
arr[4]=1;
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println(Arrays.toString(arr));
}
}