博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序<C#>
阅读量:5015 次
发布时间:2019-06-12

本文共 1112 字,大约阅读时间需要 3 分钟。

using System;

namespace Algorithm.AFind
{
    public class Example04:IComMethod
    {
        int[] a1 = { 8, 9, 7, 5, 4, 3, 10, 12, 1, 2, 21, 66, 43};
        public Example04()
        {
        }
        private int sepCompare(int[]a, int lo, int hi){
            // Console.WriteLine("---");
            int key = a[lo]; // 当次排序当首位
            while (lo < hi){
                while ((a[hi] >= key) && (hi > lo)){
                    hi = hi - 1; //上标往前移动
                }
                // 交换,为了把值分按key分成两部分
                int tmp = a[lo];
                a[lo] = a[hi];
                a[hi] = tmp;
                Console.WriteLine(tmp + " " + a[lo] + " " + a[hi]);
                while((a[lo] <= key) && (lo < hi)){
                    lo = lo + 1; // 下标往后移
                }
                int tmp2 = a[hi];
                a[hi] = a[lo];
                a[lo] = tmp2;
                // 交换,为了把值分按key分成两部分
            }
            return hi;
        }
        private void sort(int[]a, int lo, int hi){
            // Console.WriteLine("test");
            if(lo >= hi){
                return;
            }
            // 将分成的两部分进行递归直到每次传递的值左右标相等为止
            int index = sepCompare(a, lo, a.Length - 1);
            sort(a, lo, index - 1);
            sort(a, index + 1, a.Length - 1);
        }
        private void printIntGroup(int[]a){
            Console.WriteLine("输出");
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
        }
        public void Run()
        {
            sort(a1, 0, a1.Length - 1);
            printIntGroup(a1);
        }
        public void Run(int key)
        {
        }
    }
}

转载于:https://www.cnblogs.com/BXLH/p/10446246.html

你可能感兴趣的文章
设计模式之---装饰器设计模式
查看>>
基于WordNet的英文同义词、近义词相似度评估及代码实现
查看>>
Equation漏洞混淆利用分析总结(上)
查看>>
shell学习1shell简介
查看>>
Qt 【无法打开 xxxx头文件】
查看>>
JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)
查看>>
三层架构(我的理解及详细分析)
查看>>
Django模板语言相关内容
查看>>
前端开发工程师如何在2013年里提升自己【转】--2016已更新升级很多何去何从?...
查看>>
markdown语法测试集合
查看>>
running and coding
查看>>
实现QQ第三方登录、网站接入
查看>>
HTML CSS 层叠样式表 三
查看>>
Qt pro pri 文件学习1
查看>>
软件工程概论第六周学习进度条
查看>>
[思路]导入导出功能
查看>>
【iOS】UICollectionView自己定义Layout之蜂窝布局
查看>>
golang——(strings包)常用字符串操作函数
查看>>
发布aar到jcenter
查看>>
跨浏览器问题的五种解决方案
查看>>