Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Bagaimana untuk menulis algoritma isihan sisipan menggunakan C#

Bagaimana untuk menulis algoritma isihan sisipan menggunakan C#

王林
王林asal
2023-09-21 12:54:111190semak imbas

Bagaimana untuk menulis algoritma isihan sisipan menggunakan C#

Cara menulis algoritma isihan sisipan menggunakan C#

Isihan sisipan ialah algoritma isihan mudah dan intuitif yang sering digunakan dalam pembangunan sebenar. Ia berfungsi dengan membina urutan tersusun Untuk data yang tidak diisih, ia mengimbas dari belakang ke hadapan dalam urutan yang diisih, mencari kedudukan yang sepadan dan memasukkannya.

Di bawah ini kami akan memperkenalkan secara terperinci cara menulis algoritma isihan sisipan menggunakan C# dan memberikan contoh kod khusus.

Pertama, kita perlu menentukan tatasusunan untuk mengisih. Dalam contoh ini, kami menggunakan tatasusunan integer untuk mengisih, dan bilangan elemen tatasusunan ditetapkan kepada n.

int[] arr = new int[n];

Seterusnya, kita boleh menulis algoritma isihan sisipan yang sepadan.

public static void InsertionSort(int[] arr)
{
    int n = arr.Length;
    for (int i = 1; i < n; ++i)
    {
        int key = arr[i];
        int j = i - 1;

        while (j >= 0 && arr[j] > key)
        {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = key;
    }
}

Dalam kod ini, kami menggunakan dua gelung untuk melaksanakan isihan sisipan. Gelung luar bermula dari elemen kedua hingga elemen terakhir, menunjukkan elemen sedang disisipkan. Gelung dalam bermula dari elemen yang sedang disisipkan dan terus membandingkannya dengan bahagian yang diisih untuk mencari kedudukan sisipan.

Apabila gelung dalam tamat, kami meletakkan elemen pada masa ini untuk dimasukkan ke dalam kedudukan yang betul dan meneruskan ke pusingan gelung seterusnya.

Akhir sekali, kita boleh mengisih dengan memanggil kaedah InsertionSort.

int[] arr = { 9, 5, 1, 4, 3, 6, 8, 2, 7 };
InsertionSort(arr);

Console.WriteLine("排序后的数组:");
foreach (int num in arr)
{
    Console.Write(num + " ");
}

Dalam contoh ini, kita mula-mula mencipta tatasusunan yang mengandungi 9 integer dan menghantarnya sebagai parameter kepada kaedah InsertionSort. Kemudian, kami mencetak tatasusunan yang diisih melalui gelung foreach.

Jalankan atur cara dan output adalah seperti berikut:

排序后的数组:
1 2 3 4 5 6 7 8 9

Anda dapat melihat bahawa algoritma isihan sisipan telah berjaya mengisih tatasusunan.

Untuk meringkaskan, isihan sisipan ialah algoritma pengisihan yang mudah tetapi berkesan. Dengan membina urutan tersusun secara berterusan dan memasukkan unsur-unsur yang tidak diisih ke dalam urutan yang diisih satu demi satu, hasil tersusun boleh diperoleh dengan cepat. Dalam pembangunan sebenar, kami boleh mengubah suai algoritma seperti yang diperlukan untuk menyesuaikan diri dengan pelbagai jenis pengisihan data. Melalui contoh kod di atas, saya percaya anda telah menguasai cara menggunakan C# untuk menulis algoritma isihan sisipan. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk menulis algoritma isihan sisipan menggunakan C#. 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