91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c#快速排序法代碼怎樣寫

c#
小樊
82
2024-10-18 11:39:25
欄目: 編程語言

以下是C#語言中快速排序算法的實現:

public static void QuickSort(int[] arr, int left, int right)
{
    if (left < right)
    {
        int pivotIndex = Partition(arr, left, right);
        QuickSort(arr, left, pivotIndex - 1);
        QuickSort(arr, pivotIndex + 1, right);
    }
}

private static int Partition(int[] arr, int left, int right)
{
    int pivot = arr[left];
    while (left < right)
    {
        while (left < right && arr[right] >= pivot)
        {
            right--;
        }
        arr[left] = arr[right];
        while (left < right && arr[left] <= pivot)
        {
            left++;
        }
        arr[right] = arr[left];
    }
    arr[left] = pivot;
    return left;
}

在上述代碼中,QuickSort()方法是快速排序的主方法,它接受一個整數數組arr以及數組的左右邊界leftright作為參數。在QuickSort()方法中,我們首先判斷左邊界是否小于右邊界,如果是,則調用Partition()方法對數組進行劃分,并返回劃分點的索引。然后,我們遞歸地對數組的左半部分和右半部分進行快速排序。

Partition()方法是快速排序的關鍵步驟,它接受一個整數數組arr以及數組的左右邊界leftright作為參數。在Partition()方法中,我們首先選擇數組的第一個元素作為基準值(pivot)。然后,我們使用兩個指針leftright分別從數組的左側和右側開始遍歷數組,將大于等于基準值的元素移到數組的左側,將小于基準值的元素移到數組的右側。最后,我們將基準值放到正確的位置上,并返回該位置的索引。

要使用上述代碼對數組進行快速排序,只需調用QuickSort()方法即可。例如:

int[] arr = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
QuickSort(arr, 0, arr.Length - 1);
foreach (int num in arr)
{
    Console.Write(num + " ");
}

上述代碼將輸出排序后的數組:1 1 2 3 3 4 5 5 5 6 9

0
阳高县| 朝阳市| 绥德县| 长沙市| 湖口县| 常熟市| 鹿泉市| 绵阳市| 登封市| 察雅县| 棋牌| 宁陵县| 崇文区| 金堂县| 麻阳| 扎赉特旗| 丰都县| 敦煌市| 梨树县| 定南县| 汶上县| 金乡县| 西藏| 金川县| 确山县| 诸城市| 泰州市| 苍山县| 岳普湖县| 博白县| 长海县| 九寨沟县| 宣恩县| 湾仔区| 邵阳县| 密云县| 商城县| 阿巴嘎旗| 桂平市| 岚皋县| 鄂托克旗|