Maison > développement back-end > Tutoriel C#.Net > Comment écrire un algorithme de tri rapide en utilisant C#

Comment écrire un algorithme de tri rapide en utilisant C#

王林
Libérer: 2023-09-19 15:28:41
original
762 Les gens l'ont consulté

Comment écrire un algorithme de tri rapide en utilisant C#

Comment utiliser C# pour écrire un algorithme de tri rapide

L'algorithme de tri rapide est un algorithme de tri efficace Son idée est de diviser le tableau en sous-problèmes plus petits grâce à l'idée de​​diviser pour régner, puis résolvez ces sous-problèmes de manière récursive. Enfin, combinez-les pour obtenir la réponse à l'ensemble du problème.

Ci-dessous, nous présenterons en détail comment écrire un algorithme de tri rapide en utilisant C# et donnerons des exemples de code pertinents.

  1. Idée d'algorithme
    L'idée du tri rapide peut être résumée en trois étapes suivantes :
  2. Sélectionner un élément de référence, généralement le premier élément du tableau
  3. Placer les éléments dans le tableau qui sont plus petits que le ; élément de référence à gauche de l'élément de référence, placez les éléments plus grands que l'élément de base à droite de l'élément de base ;
  4. Effectuez un tri rapide récursif sur les sous-tableaux respectivement à gauche et à droite de l'élément de base ;
  5. Implémentation spécifique
    Voici le code d'implémentation spécifique de l'algorithme de tri rapide écrit en C# :
using System;

class QuickSort
{
    // 快速排序方法
    public static void Sort(int[] arr, int low, int high)
    {
        if (low < high)
        {
            // 将数组划分成两部分
            int partitions = Partition(arr, low, high);

            // 分别对划分后的两部分进行递归排序
            Sort(arr, low, partitions - 1);
            Sort(arr, partitions + 1, high);
        }
    }

    // 划分数组,并返回划分位置
    public static int Partition(int[] arr, int low, int high)
    {
        int pivot = arr[low]; // 基准元素
        int left = low;
        int right = high;

        while (left < right)
        {
            // 从右往左找到第一个小于基准元素的元素
            while (left < right && arr[right] >= pivot)
                right--;

            // 交换元素位置
            if (left < right)
                Swap(arr, left, right);

            // 从左往右找到第一个大于基准元素的元素
            while (left < right && arr[left] <= pivot)
                left++;

            // 交换元素位置
            if (left < right)
                Swap(arr, left, right);
        }

        return left;
    }

    // 交换元素位置
    public static void Swap(int[] arr, int i, int j)
    {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    // 测试代码
    static void Main(string[] args)
    {
        int[] arr = { 5, 3, 8, 4, 2, 9, 1, 6, 7 };
        Console.WriteLine("原始数组:");
        for (int i = 0; i < arr.Length; i++)
            Console.Write(arr[i] + " ");
        Console.WriteLine();

        Sort(arr, 0, arr.Length - 1);
        
        Console.WriteLine("排序后的数组:");
        for (int i = 0; i < arr.Length; i++)
            Console.Write(arr[i] + " ");
        Console.WriteLine();
    }
}
Copier après la connexion
  1. Exemple de résultats d'exécution
    Dans le code ci-dessus, nous avons utilisé un programme de test pour trier rapidement le tableau et l'imprimer. résultats.

Les résultats d'exécution sont les suivants :

原始数组:
5 3 8 4 2 9 1 6 7
排序后的数组:
1 2 3 4 5 6 7 8 9
Copier après la connexion

Comme vous pouvez le voir dans l'exemple ci-dessus, utiliser C# pour écrire un algorithme de tri rapide est une méthode relativement simple et efficace qui peut nous aider à trier rapidement les tableaux. Vous pouvez modifier et développer davantage le code ci-dessus en fonction de vos propres besoins pour vous adapter aux différents besoins de tri.

Résumé
Cet article explique comment utiliser C# pour écrire l'algorithme de tri rapide et donne des exemples de code correspondants. Le tri rapide est un algorithme de tri efficace avec de bonnes performances, facile à comprendre et à mettre en œuvre, et peut être largement utilisé dans le développement réel. J'espère que cet article sera utile à tout le monde lors de l'apprentissage et de l'utilisation du langage de programmation C#.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal