Rumah  >  Artikel  >  Java  >  Ketahui prinsip dan langkah pelaksanaan kod algoritma isihan pemilihan Java

Ketahui prinsip dan langkah pelaksanaan kod algoritma isihan pemilihan Java

WBOY
WBOYasal
2024-02-18 17:27:06971semak imbas

Ketahui prinsip dan langkah pelaksanaan kod algoritma isihan pemilihan Java

Fahami algoritma isihan pemilihan Java dan langkah pelaksanaan kodnya

Isih Pilihan ialah salah satu algoritma pengisihan biasa ialah untuk mencari nilai minimum dalam tatasusunan dan menggabungkannya dengan nilai pertama pertukaran tatasusunan kedudukan elemen; kemudian cari nilai minimum di antara elemen yang tinggal dan tukarkannya dengan elemen kedua dan seterusnya sehingga keseluruhan tatasusunan diisih. Kerumitan masa isihan pemilihan ialah O(n^2), yang tidak sesuai untuk mengisih data berskala besar Walau bagaimanapun, prinsipnya adalah mudah dan intuitif, dan ia merupakan pengenalan yang baik untuk pemula untuk memahami algoritma pengisihan.

Langkah pelaksanaan kod algoritma isihan pemilihan Java akan dianalisis secara terperinci di bawah dan contoh kod khusus akan disediakan.

Langkah pelaksanaan algoritma isihan pemilihan adalah seperti berikut:

  1. Cari nilai minimum dalam tatasusunan dan rekodkan subskripnya
  2. Tukar nilai minimum dalam tatasusunan dengan elemen pertama tatasusunan; elemen yang tinggal Cari nilai minimum dalam tatasusunan dan rekodkan subskripnya;
  3. Berikut ialah contoh kod untuk melaksanakan algoritma isihan pemilihan dalam Java:
  4. public class SelectionSort {
        public static void main(String[] args) {
            int[] arr = {64, 25, 12, 22, 11};
            selectionSort(arr);
            System.out.println("排序后的数组:");
            printArray(arr);
        }
    
        public static void selectionSort(int[] arr) {
            int n = arr.length;
    
            for (int i = 0; i < n-1; i++) {
                int minIndex = i;
                for (int j = i+1; j < n; j++) {
                    if (arr[j] < arr[minIndex])
                        minIndex = j;
                }
                // 将最小值与第i个元素交换位置
                int temp = arr[minIndex];
                arr[minIndex] = arr[i];
                arr[i] = temp;
            }
        }
        
        public static void printArray(int[] arr) {
            int n = arr.length;
            for (int i=0; i < n; ++i)
                System.out.print(arr[i] + " ");
            System.out.println();
        }
    }
  5. Dalam kod di atas, kami mula-mula mentakrifkan arr tatasusunan int dan memberikannya nilai awal. Kaedah selectionSort() kemudiannya dipanggil untuk mengisih tatasusunan, di mana kita menggunakan dua gelung bersarang untuk melintasi tatasusunan dan mencari nilai minimum.
  6. Dalam gelung luar, kita mengawal traversal setiap elemen tatasusunan melalui pembolehubah i, dan kemudian dalam gelung dalam, kita menggunakan pembolehubah j untuk melintasi elemen yang tinggal bermula dari kedudukan seterusnya i, dan bandingkan arr [j] dan saiz arr[minIndex] untuk mencari subskrip nilai minimum semasa.

Selepas mencari nilai minimum, kami menggunakan temp pembolehubah sementara untuk menukar nilai minimum dengan nilai elemen kedudukan semasa. Akhirnya, apabila lintasan gelung luar tamat, keseluruhan tatasusunan akan diisih dari kecil ke besar.

Selepas melengkapkan pengisihan, kami memanggil kaedah printArray() untuk mencetak tatasusunan yang diisih.

Di atas ialah analisis terperinci untuk memahami algoritma isihan pemilihan Java dan langkah pelaksanaan kodnya, dan menyediakan contoh kod khusus. Walaupun pengisihan pemilihan tidak mempunyai kecekapan yang tinggi, ia mudah dan mudah difahami, dan ia meletakkan asas untuk memahami algoritma pengisihan lain yang lebih kompleks. Pada masa yang sama, memahami algoritma pengisihan yang berbeza membantu kami memilih kaedah pengisihan yang paling sesuai untuk memenuhi keperluan kami dalam pembangunan sebenar.

Atas ialah kandungan terperinci Ketahui prinsip dan langkah pelaksanaan kod algoritma isihan pemilihan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn