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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李见黎 中级黑马   /  2012-3-27 21:57  /  1864 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚才化了几分钟搞定的一个快排序

/**
* 快速排序法
* @author 李见黎
*2012-3-27
*/
class QuickSort
{
        public void QuickSortFun(int []arr)
        {
                QSort(arr, 0, arr.length-1);
        }
        /**
         * 递归实现快排序
         * @param 待排序数组
         * @param 低位置
         * @param 高位置
         */
        public void QSort(int []arr,int low,int high)
        {
                if(low<high)
                {
                        int tempt=Partition(arr, low, high);
                        QSort(arr, low, tempt-1);
                        QSort(arr, tempt+1, high);
                }
        }
        /**
         * 划分
         * @return  一次划分完之后所得到的标识的位置
         */
        public int Partition(int arr[],int low,int high)
        {
       
                int temp=arr[(low+high)/2];
                while(low<high)
                {
                        while(low<high&&arr[high]>=temp)
                                --high;
                                arr[low]=arr[high];
                        while(low<high&&arr[low]<=temp)
                                ++low;
                                arr[high]=arr[low];
                }
                arr[(low+high)/2]=temp;
                return low;
        }
       
}

1 个回复

倒序浏览
本帖最后由 抓哇 于 2012-3-28 10:41 编辑

关于排序算法头都晕了  基本排序有选择 冒泡 插入
高级排序有归并排序  希尔排序 快速排序 基数排序。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马