快排,做个笔记

简介: static void Main(string[] args) { var list = new List() { 3, 4, 1, 2, 6, 5, 7 }; QuickSort(list, 0, list.
        static void Main(string[] args)
        {
            var list = new List<int>() { 3, 4, 1, 2, 6, 5, 7 };
            QuickSort(list, 0, list.Count - 1); 
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }

        } 

        public static int Division(List<int> list, int left, int right)
        {
            while (left < right)
            {
                int num = list[left];
                if (num > list[left + 1])
                {
                    list[left] = list[left + 1];
                    list[left + 1] = num;
                    left++;
                }
                else {
                    int temp = list[right];
                    list[right] = list[left + 1];
                    list[left + 1] = temp;
                    right--;
                }
            }
            return left;
        }
        public static void QuickSort(List<int> list, int left, int right)
        {
            if (left < right) {
                int i = Division(list, left, right);
                QuickSort(list, i + 1,right);
                QuickSort(list, left, i - 1);
            }
        } 

 

目录
相关文章
|
4月前
|
搜索推荐
排序算法笔记
排序算法笔记
39 0
|
4月前
|
算法 索引
【刷题】 二分查找入门
二分算法是一种非常强大的算法!!!
25 1
|
4月前
|
算法 索引
【刷题】 二分查找进阶
二分查找的算法思想是很好理解的。朴素二分很容易,但一般常使用左端点查找与右端点查找来解决问题。
28 0
|
9月前
|
搜索推荐 算法 C语言
手撕排序算法5:快速排序非递归版本和计数排序
手撕排序算法5:快速排序非递归版本和计数排序
|
算法 C++
C++数据结构算法(三)二分查找
C++数据结构算法(三)二分查找
C++数据结构算法(三)二分查找
|
算法 搜索推荐
选择排序与堆排序(还记得这些经典算法吗?)
选择排序与堆排序(还记得这些经典算法吗?)
选择排序与堆排序(还记得这些经典算法吗?)
|
搜索推荐 测试技术
直接插入排序、希尔排序(这些经典排序算法你还记得吗?)
直接插入排序、希尔排序(这些经典排序算法你还记得吗?)
直接插入排序、希尔排序(这些经典排序算法你还记得吗?)
|
算法 索引
数据结构与算法(七) 二分法
数据结构与算法(七) 二分法
66 0
|
算法 索引
【数据结构与算法】二分查找算法
【数据结构与算法】二分查找算法
【数据结构与算法】二分查找算法
Acwing 快排 归并 整理笔记
Acwing 快排 归并 整理笔记
150 0
Acwing 快排 归并 整理笔记