Teknik pengisihan yang menggunakan elemen tatasusunan yang diberikan diedarkan ke dalam banyak bilangan baldi untuk mengisih setiap baldi dengan menggunakan algoritma pengisihan yang berbeza atau dengan menggunakan algoritma pengisihan baldi secara rekursif dipanggil isihan baldi dalam Java yang kerumitan ruangnya ialah O (1), kerumitan kes terburuk ialah O(n^2), kerumitan kes terbaik ialah Omega(n+k) dan kerumitan kes purata ialah theta(n+k) dan teknik pengisihan baldi untuk mengisih elemen yang diberikan bagi tatasusunan berfungsi di kelajuan yang lebih pantas jika dibandingkan dengan algoritma pengisihan lain dan elemen tatasusunan yang akan diisih menggunakan algoritma isihan baldi mestilah diedarkan secara seragam.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Fungsi untuk melaksanakan isihan baldi dalam Java adalah seperti berikut:
public static int[] bucketsort(int[] array, int maximum_value) { int[] newbucket = new int[maximum_value + 1]; int[] sorted_array = new int[array.length]; for (int a= 0; a <array.length; a++) newbucket[array[a]]++; int position = 0; for (int b = 0; b < newbucket.length; b++) for (int c = 0; c < newbucket[b]; c++) sorted_array[position++] = b; return sorted_array; }
di mana tatasusunan ialah tatasusunan input yang hendak diisih menggunakan algoritma isihan baldi, nilai_maksimum ialah nilai_maksimum yang terdapat dalam tatasusunan yang diberikan dan tatasusunan_isih ialah tatasusunan terhasil yang terdiri daripada elemen yang diisih.
Cara algoritma isihan Baldi dalam Java adalah seperti berikut:
Berikut adalah contoh yang diberikan di bawah:
Atur cara Java untuk mengisih elemen tatasusunan yang diberikan dengan melaksanakan algoritma isihan baldi dan kemudian memaparkan elemen disusun tatasusunan sebagai output pada skrin:
Kod:
import java.util.*; public class Main { public static int[] bucketsort(int[] array, int maximum_value) { //creating an empty array called newbucket which is considered as bucket array int[] newbucket = new int[maximum_value + 1]; //creating another empty array called sorted_array to store the result array int[] sorted_array = new int[array.length]; //traversing through the input array to add each element to the bucket array for (int a= 0; a <array.length; a++) newbucket[array[a]]++; //sorting each element in the bucket array and adding each sorted element in order to the original input array int position = 0; for (int b = 0; b < newbucket.length; b++) for (int c = 0; c < newbucket[b]; c++) sorted_array[position++] = b; return sorted_array; } //function to find the maximum value in the input array in order to sort the given array using bucket sort technique static int maximumValue(int[] array) { int maximum_value = 0; for (int d = 0; d < array.length; d++) if (array[d] > maximum_value) maximum_value = array[d]; return maximum_value; } //main function is called within which we display the resulting array public static void main(String args[]) { int[] array ={100, 90, 80, 70, 60, 50, 40, 30, 20, 10}; int maximum_value = maximumValue(array); System.out.print("\nThe elements of the array to be sorted are:\n "); System.out.println(Arrays.toString(array)); System.out.print("\nThe elements of the sorted array sorted using bucket sort algorithm are:\n "); System.out.println(Arrays.toString(bucketsort(array,maximum_value))); } }
Output:
Dalam program di atas, kami mencipta tatasusunan kosong yang dipanggil newbucket yang dianggap sebagai tatasusunan baldi. Kemudian kami mencipta satu lagi tatasusunan kosong yang dipanggil sorted_array untuk menyimpan tatasusunan hasil. Kemudian kita merentasi tatasusunan input untuk menambah setiap elemen pada tatasusunan baldi. Kemudian kami mengisih setiap elemen dalam tatasusunan baldi dan menambah setiap elemen yang diisih untuk susunan input asal. Kemudian kita mentakrifkan fungsi untuk mencari nilai maksimum dalam tatasusunan input untuk mengisih tatasusunan yang diberikan menggunakan teknik isihan baldi. Kemudian fungsi utama dipanggil di mana kita memaparkan tatasusunan yang terhasil. Output ditunjukkan dalam syot kilat di atas.
Atur cara Java untuk mengisih elemen tatasusunan yang diberikan dengan melaksanakan algoritma isihan baldi dan kemudian memaparkan elemen disusun tatasusunan sebagai output pada skrin:
Kod:
import java.util.*; public class Main { public static int[] bucketsort(int[] array, int maximum_value) { //creating an empty array called newbucket which is considered as bucket array int[] newbucket = new int[maximum_value + 1]; //creating another empty array called sorted_array to store the result array int[] sorted_array = new int[array.length]; //traversing through the input array to add each element to the bucket array for (int a= 0; a <array.length; a++) newbucket[array[a]]++; //sorting each element in the bucket array and adding each sorted element in order to the original input array int position = 0; for (int b = 0; b < newbucket.length; b++) for (int c = 0; c < newbucket[b]; c++) sorted_array[position++] = b; return sorted_array; } //function to find the maximum value in the input array in order to sort the given array using bucket sort technique static int maximumValue(int[] array) { int maximum_value = 0; for (int d = 0; d < array.length; d++) if (array[d] > maximum_value) maximum_value = array[d]; return maximum_value; } //main function is called within which we display the resulting array public static void main(String args[]) { int[] array ={ 60, 80, 50, 90, 30, 70, 20 }; int maximum_value = maximumValue(array); System.out.print("\nThe elements of the array to be sorted are:\n "); System.out.println(Arrays.toString(array)); System.out.print("\nThe elements of the sorted array sorted using bucket sort algorithm are:\n "); System.out.println(Arrays.toString(bucketsort(array,maximum_value))); } }
Output:
Dalam atur cara di atas, kami mencipta tatasusunan kosong yang dipanggil baldi baharu yang dianggap tatasusunan baldi. Kemudian kita mencipta satu lagi tatasusunan kosong yang dipanggil sorted_array untuk menyimpan tatasusunan hasil. Kemudian kami merentasi tatasusunan input untuk menambah setiap elemen pada tatasusunan baldi. Kemudian kami mengisih setiap elemen dalam tatasusunan baldi dan menambah setiap elemen yang diisih untuk susunan input asal. Kemudian kita mentakrifkan fungsi untuk mencari nilai maksimum dalam tatasusunan input untuk mengisih tatasusunan yang diberikan menggunakan teknik isihan baldi. Kemudian fungsi utama dipanggil di mana kita memaparkan tatasusunan yang terhasil. Output ditunjukkan dalam syot kilat di atas.
Atas ialah kandungan terperinci Isih Baldi di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!