更新時間:2022-11-03 11:03:01 來源:動力節點 瀏覽1284次
選擇排序技術是一種選擇數組中最小的元素并與數組的第一個元素交換的方法。接下來,數組中第二小的元素與第二個元素交換,反之亦然。
這樣,數組中的最小元素會被重復選擇并放在適當的位置,直到整個數組被排序。
為選擇排序維護了兩個子數組:
排序子數組:在每次迭代中,找到最小元素并將其放置在適當的位置。該子數組已排序。
未排序的子數組:未排序的剩余元素。
選擇排序是一種簡單明了的排序技術。該技術只涉及在每次傳遞中找到最小的元素并將其放置在正確的位置。選擇排序非常適合較小的數據集,因為它可以有效地對較小的數據集進行排序。
因此,我們可以說選擇排序不適用于較大的數據列表。
選擇排序的一般算法如下:
選擇排序 (A, N)
第 1 步:對 K = 1 到 N-1 重復第 2 步和第 3 步
第 2 步:最小調用例程(A,K,N,POS)
第 3 步:
用 A [POS] 交換 A[K]
[循環結束]
第 4 步:退出
例程最小(A、K、N、POS)
第 1 步:[初始化] 設置 minimumItem = A[K]
第 2 步:[初始化] 設置 POS = K
第 3 步:
對于 J = K+1 到 N -1,重復
if minimumItem > A [J]
set minimumItem = A [J]
set POS = J
[if end]
[End of loop]
第 4 步:返回 POS
如您所見,在遍歷數據集時調用了查找最小數字的例程。找到最小元素后,將其放置在所需位置。
現在讓我們演示實現選擇排序的 Java 程序。
import java.util.*;
class Main
{
static void sel_sort(int numArray[])
{
int n = numArray.length;
// traverse unsorted array
for (int i = 0; i < n-1; i++)
{
// Find the minimum element in unsorted array
int min_idx = i;
for (int j = i+1; j < n; j++)
if (numArray[j] < numArray[min_idx])
min_idx = j;
// swap minimum element with compared element
int temp = numArray[min_idx];
numArray[min_idx] = numArray[i];
numArray[i] = temp;
}
}
public static void main(String args[])
{
//declare and print the original array
int numArray[] = {7,5,2,20,42,15,23,34,10};
System.out.println("Original Array:" + Arrays.toString(numArray));
//call selection sort routine
sel_sort(numArray);
//print the sorted array
System.out.println("Sorted Array:" + Arrays.toString(numArray));
}
}
輸出:
原始數組:[7, 5, 2, 20, 42, 15, 23, 34, 10]
排序數組:[2, 5, 7, 10, 15, 20, 23, 34, 42]
在上面的java例子中,我們反復尋找數組中最小的元素,放入排序好的數組中,直到整個數組完全排序。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習