您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)web開發(fā)中選擇排序什么意思,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
0x01,前言閑敘
其實對于這樣的內(nèi)容,自己沒有一個很明確的講解流程,一般還是按照下面的內(nèi)容來說吧,先暫時看下大概的內(nèi)容。
0x02,什么是選擇排序?
選擇排序(Selection sort)是一種簡單的直觀的排序算法。它的工作原理是:第一次從待排序的數(shù)據(jù)元素中選出最?。ɑ蜃畲螅┑囊粋€元素,存放在序列的起始位置,然后再從剩余的未排序元素中尋找最小(大)元素,然后放到已排序的序列的末尾。以此類推,直到全部待排序的數(shù)據(jù)元素的個數(shù)為零。
0x03,選擇排序代碼的實現(xiàn)
public class SelectionSortTest {
public static void main(String[] args) {
int[] arr = {1, 3, 2, 4, 7, 8, 5, 9, 6, 10};
selectionSort(arr);
for (int num : arr
) {
System.out.print(num + "\t");
}
}
/**
* @param arr 待排序數(shù)組
*/
public static void selectionSort(int[] arr) {
int length = arr.length;
for (int i = 0; i < length - 1; i++) {
int minIndex = i;//每次從未排序數(shù)組中選擇一個,選擇了length-1個
for (int j = i + 1; j < length; j++) {//查找數(shù)組的最小下標(biāo)
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
swap(arr, minIndex, i);//數(shù)據(jù)交換
}
}
//數(shù)據(jù)交換
private static void swap(int[] arr, int minIndex, int i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
0x04,選擇排序?qū)崿F(xiàn)圖片版
0x05,選擇排序的時間復(fù)雜度?
時間復(fù)雜度為:O(n^2),還是蠻高的,冒泡排序的時間復(fù)雜度一樣
0x06,選擇排序是否穩(wěn)定?
選擇排序不是一種穩(wěn)定性排序,是因為在數(shù)據(jù)元素在交換的過程中有可能會發(fā)生前后順序的變化
關(guān)于“web開發(fā)中選擇排序什么意思”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。