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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wingtheu 中级黑马   /  2014-11-6 10:41  /  985 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



public class Suanfa
{   
    static int count = 0;  
    public static void main(String[] args)
    {  
        int values[] = { 5, 4, 8, 3, 7, 2, 1, 9, 0, 6 };  
        qsort(values, 0, (values.length - 1));  
        System.out.printf("\n\n最后排序结果:");  
        for (int i = 0; i < values.length; i++)
        {  
            System.out.printf("%d ", values[i]);  
        }  
    }  

    public static void qsort(int values[], int left, int right)
    {  
        int tmp = 0;  
        System.out.printf("\n第%d次排序结果:", count);  
        count++;  
        for (int i = 0; i < values.length; i++)
                {  
                    System.out.printf("%d ", values[i]);  
                }   
        if (left < right)
        {  
            tmp = partition(values, left, right);  
            qsort(values, left, tmp);  
            qsort(values, tmp + 1, right);  
        }  
    }  
    public static int partition(int values[], int left, int right)
    {  
        int i = 0, j = 0;  
        int key = 0, tmp = 0;  
        if (null == values)
                {  
                    return 0;  
                }  
                i = left;  
                j = right;  
                key = values[left];  
        // while循环可以实现分组   
        while (i < j)
        {  
            while (values[j] > key)
            {  
                --j;  
            }  
            tmp = values[i];  
            values[i] = values[j];  
            values[j] = tmp;  
            while (values[i] < key)
            {  
                i++;  
            }  
            tmp = values[i];  
            values[i] = values[j];  
            values[j] = tmp;  
        }  
        return i;  
    }  
}  

1 个回复

正序浏览
是数组的么         
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马