http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4320|回复: 5

[学生提问] 我如何用以下的QuickSort函数排序List?Textbox呢?

[复制链接]
发表于 2014-7-18 09:43:24 | 显示全部楼层 |阅读模式
1金钱
[C#] 纯文本查看 复制代码
/// <summary>
        /// Quick Sort
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="array"></param>
        public static void QuickSort<T>(T[] array,int left,int right) where T : IComparable
        {
            
            if (left < right)
            {
               
                int middle = GetMiddleFroQuickSort<T>(array, left, right);

                QuickSort<T>(array, left, middle - 1);

                QuickSort<T>(array, middle + 1, right);
            }
           
        }
        /// <summary>
        /// get the index of the middle value for qucik sort
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="array"></param>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        private static int GetMiddleFroQuickSort<T>(T[] array, int left, int right) where T : IComparable
        {
            T key = array[left];
            while (left < right)
            {
                while (left < right && key.CompareTo(array[right]) < 0)
                {
                    right--;
                }
                if (left < right)
                {
                    T temp = array[left];
                    array[left] = array[right];
                    //Console.WriteLine("array[{0}]:{1} ---->  arry[{2}]:{3}", left, temp, right, array[right]);
                    left++;
                }

                while (left < right && key.CompareTo(array[left]) > 0)
                {
                    left++;
                }
                if (left < right)
                {
                    T temp = array[right];
                    array[right] = array[left];
                    //Console.WriteLine("array[{0}]:{1} ----> arry[{2}]:{3}", right, temp, left, array[left]);
                    right--;
                }
                array[left] = key;
            }
            //Console.WriteLine("find the middle value {0} and the index {1}", array[left], left);
            return left;
        }





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-7-18 09:51:43 | 显示全部楼层
List不需要用这个吧,自身带的就有
回复

使用道具 举报

 楼主| 发表于 2014-7-18 09:53:50 | 显示全部楼层
站长苏飞 发表于 2014-7-18 09:51
List不需要用这个吧,自身带的就有

它自带的排序方法有点不准
比如
01
100
70
回复

使用道具 举报

发表于 2014-7-18 09:56:44 | 显示全部楼层
qq363182566 发表于 2014-7-18 09:53
它自带的排序方法有点不准
比如
01

你把字符串当成数字比较肯定不会准啊,你定义的时候要使用Int就好办了,
回复

使用道具 举报

 楼主| 发表于 2014-7-18 10:11:39 | 显示全部楼层
站长苏飞 发表于 2014-7-18 09:56
你把字符串当成数字比较肯定不会准啊,你定义的时候要使用Int就好办了,

那如果是其它代码呢?
如:
T01
T100
T70
回复

使用道具 举报

发表于 2014-7-18 10:17:33 | 显示全部楼层
qq363182566 发表于 2014-7-18 10:11
那如果是其它代码呢?
如:
T01

字符串是安Ascll码比较的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-4 13:31

© 2014-2021

快速回复 返回顶部 返回列表