Cara menggunakan Java untuk melaksanakan algoritma isihan mengira
Isih mengira ialah algoritma isihan bukan perbandingan Idea utamanya ialah mengira bilangan kali setiap elemen muncul dalam tatasusunan, dan kemudian meletakkan elemen itu ke dalam yang betul kedudukan berdasarkan bilangan kali ia muncul. Kerumitan masa pengiraan isihan ialah O(n+k), dengan n ialah panjang jujukan yang hendak diisih, dan k ialah julat elemen terbesar dalam jujukan yang hendak diisih.
Dalam Java, kita boleh menggunakan contoh kod berikut untuk melaksanakan algoritma isihan mengira:
public class CountingSort { public static void countingSort(int[] array) { int n = array.length; // 找到待排序序列中的最大值 int max = array[0]; for (int i = 1; i < n; i++) { if (array[i] > max) { max = array[i]; } } // 创建一个计数数组,并初始化为0 int[] count = new int[max + 1]; for (int i = 0; i <= max; i++) { count[i] = 0; } // 统计每个元素在待排序序列中出现的次数 for (int i = 0; i < n; i++) { count[array[i]]++; } // 根据计数数组构建有序序列 int index = 0; for (int i = 0; i <= max; i++) { while (count[i] > 0) { array[index] = i; index++; count[i]--; } } } public static void main(String[] args) { int[] array = {9, 1, 5, 3, 7, 3, 8, 2, 6}; System.out.println("排序前:"); for (int num : array) { System.out.print(num + " "); } System.out.println(); countingSort(array); System.out.println("排序后:"); for (int num : array) { System.out.print(num + " "); } System.out.println(); } }
Dalam kod di atas, kita mula-mula mencari nilai maksimum dalam urutan untuk diisih, kemudian mencipta tatasusunan mengira dan menambah nombor kejadian setiap elemen Statistik adalah dalam tatasusunan kiraan. Seterusnya, kami membina urutan tersusun berdasarkan tatasusunan kiraan Operasi khusus adalah untuk meletakkan elemen dalam tatasusunan kiraan ke dalam urutan untuk diisih mengikut bilangan kejadian. Akhir sekali, dengan memanggil kaedah countingSort dan mencetak urutan tertib, kita boleh melihat hasil jenis pengiraan.
Perlu diambil perhatian bahawa pengiraan isihan mempunyai sekatan tertentu pada julat elemen dalam jujukan yang hendak diisih dan hanya terpakai kepada jujukan integer bukan negatif. Jika terdapat nombor negatif atau unsur jenis data lain dalam urutan yang hendak diisih, pemprosesan yang sesuai diperlukan sebelum algoritma isihan pengiraan boleh digunakan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma pengiraan pengiraan menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!