計數排序是一種在任何程式語言中都發揮關鍵作用的演算法,Java 也是如此。計數排序演算法的主要目標是根據以小整數形式出現的鍵對物件集合進行排序,以用於對演算法進行排序。它主要對鍵值對進行操作和計數,根據輸出序列呈現元素的位置。 這種排序的運行時間與項目成線性關係,然後鍵值之間的差異位於最大值和最小值之間。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法
Java 中執行計數排序沒有特定的語法,但有一個邏輯流程,以演算法的形式逐步根據輸入執行計數排序,表示如下:
Class name { Method name following sorting () { # Find the length of array defined; #the output character array will have sorted array #Create a count arr to store count of each element, characters and initialize it 0 #Store count of each character element in the array #Build output character and write the logic to make it operated in reverse order #that builds output can now be copied from the previous array to the current #Make use of the driver code to move and proceed. }
Java 中計數排序如何運作?
- 如前所述,計數排序演算法在程式設計中起著重要作用;它對以收集格式存在的物件進行排序,並用於計算具有不同鍵和值對的存在元素的數量,並再次與算術計數一起使用,確定每個鍵值對存在的每個元素的位置最小值和最大值之間的差異。
- 如果檢查的話,運行時間或時間複雜度本質上是線性的,具有數組中的所有元素以及最小和最大鍵值之間的差異,因此這些元素和排序技術適合直接使用鍵變化的情況不顯著大於具有所需鍵的元素。
- 雖然還有另一種演算法可以支援大部分的key處理,但它的效率不如按要求計數排序和散列,因此可以用基數排序代替,以處理與以前相比大量key的情況.
- 由於計數排序使用鍵和值對作為數組索引值的一部分,因此它不被視為比較排序。另外,比較排序的下限也是不允許的。
- 桶排序也只是在相同的任務和類似的時間分析下才低於計數排序,但與當時的計數排序相比,桶排序需要動態數組、鍊錶或大量內存來容納存儲桶中存在的元素,然後計數排序僅儲存每個儲存桶中單獨的單一數字的值。
- 存在某些輸入和輸出假設序列,因為計數排序的輸入由 n 個項目的集合組成,其中每個項目都有非負整數鍵值,最大值的值為 k。計數排序的一些描述是對整數的線性格式序列進行簡單排序的輸入。
- 數組的輸出大多不包含具有某種鍵順序的主要項目,但需要根據要求檢查其使用。
- 計數 Sort 的時間複雜度為 O (n+l),其中 n 是元素數量,l 是考慮輸入的範圍。
- 此外,輔助空間僅為 O(n+l)。
java 中計數排序的範例
程式透過考慮一些輸入和輸出序列集作為 Java 排序的一部分來示範計數排序。
代碼:
public class Counting_Sort_1{ void sort_0(char arr_0[]) { int n_8 = arr_0.length; char output_val[] = new char[n_8]; int count_0[] = new int[528]; for (int l_0 = 0; l_0 = 0; l_0--) { output_val[count_0[arr_0[l_0]] - 1] = arr_0[l_0]; --count_0[arr_0[l_0]]; } for (int l_0 = 0; l_0 <p><strong>輸出:</strong></p> <p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172500471535628.png?x-oss-process=image/resize,p_40" class="lazy" alt="java中的計數排序" ></p> <p><strong>說明</strong></p> <p>在上面的範例中,我們在 Java 中實作了計數排序,其中遵循以下步驟才能正確執行:</p>
- 建立一個具有 Selection_Sort_0 的類,然後遵循該類的輸入集。
- 建立類別後,就會建立一個方法來儲存將具有排序數組的字元數組。
- 建立計數數組,其意義是將值作為獨立實體以鍵和值對的形式存儲,進一步以字元形式存儲為計數。
- 需要更改計數來計算輸出數組中目前字元的實際值和位置。
- 使用字元集建立輸出數組,使其穩定並可逆序操作。
- 將排序後的陣列複製到目前數組,以某種方式或另一種方式對數組進行排序。
- 執行驅動程式程式碼以進一步驅動整個程式碼庫,以從輸入來源取得輸出。
結論
計數排序是一種排序演算法,應用於由一系列元素組成的陣列上進行排序。排序將基於數組中存在的鍵和值對或最小值或最大值的差異。當需要批量使用整數實作時,計數排序給開發者提供了很多幫助。
以上是java中的計數排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中