簡體   English   中英

這是哪個類別/類型的排序算法?

[英]which category/type of sorting algorithm is this?

這可能是一個愚蠢的問題。
但是,我對這種分類有點困惑

在這里,我將第一個元素與所有元素進行比較,然后與更大的元素進行交換。
然后選擇第二個元素與所有下一個進行比較,然后與更大的交換

class Sort{ public static void main(String[] arg) { System.out.println("Sort"); int[] unsorted = {2,5,2,5,3,3,6,2,7,3,1,84,3}; for(int i=0;i<unsorted.length;i++) { for(int j=i;j<unsorted.length;j++) { if(unsorted[i] > unsorted[j]) { swap(unsorted,i,j); } } } System.out.println(Arrays.toString(unsorted)); } public static void swap(int[] arr,int i,int j) { int tmp = arr[i]; arr[i]=arr[j]; arr[j]=tmp; } }

這就是選擇排序。 你可以看出,因為在外部循環的迭代i之后,數組中直到索引i的所有元素都在它們的最終位置。 唯一的非標准位是每次找到較小的元素時都會交換活動元素; 這在“經典”選擇排序中不是這種情況,但在實際實現中很常見(特別是在嵌入式系統中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM