A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马山闪 中级黑马   /  2014-4-1 18:39  /  1059 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马山闪 于 2014-4-3 09:44 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _02快速排序
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = { 1, 3, 4, 7, 2, 7, 9, 0, -13 };
            Sort(array, 0, array.Length - 1);
            foreach (var item in array)
            {
                Console.Write(item + " ");
            }
            Console.ReadKey();
        }
        public static int GetIndex(int[] array, int left, int right)
        {
            //这里的算法是从最左边开始算的
            int temp = array[left];//temp为基准值
            while (left < right)
            {
                for (int i = right; i >= left; i--)//从右边开始比较
                {
                    if (array < temp)
                    {
                        array[left] = array;
                        break;
                    }
                }
               
                for (int i = left; i < right; i++)//从左边开始比较
                {
                    if (array > temp)
                    {
                        array[right] = array;
                        break;
                    }
                }
               
                right--;
                left++;
               
            }

            array[left] = temp;
            return left ;
        }
        public static void Sort(int[] array, int left, int right)
        {
            if (left < right)
            {
                //按基准值分成两个数组再继续排序
                int temp = GetIndex(array, left, right);
                Sort(array, left, temp - 1);
                Sort(array, temp + 1, right);
            }
        }
    }
}

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

2 个回复

正序浏览
好吧,自己最后弄出来了
回复 使用道具 举报
纠结了好久,不知道哪个地方错了,输出的是这样

20140401184036.png (6.36 KB, 下载次数: 7)

20140401184036.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马