zoukankan      html  css  js  c++  java
  • 快速排序之Java

    /*
    快速排序:
    1、以第一个数作为基数
    2、从右向左比较,找出第一个小于基数的数,记录下标j
    3、从左往右比较,找出第一个大于基数的数,记录下标i
    4、将i,j对应值交换
    5、将i对应的小值赋值给low对应的基数值
    6、将基数赋给i下标
    7、循环。
    */
    class SortQuickDemo 
    {
    	public static void main(String[] args) 
    	{
    		int [] a =new int[]{1,2,5,3,4,6,9,8,7};
    		sortQuick(a,0,8);
    		for(int i : a)
    			System.out.print(i + "..");
    	}
    
    	public static void sortQuick(int a[],int low,int high)
    	{
    		if(low < high)
    		{
    			int mid = partition(a, low, high);
    			sortQuick(a,low,mid-1);
    			sortQuick(a,mid + 1,high);
    		}
    	}
    
    	public static int partition(int a[],int low,int high)
    	{
    		int i=low,j=high,value=a[low];
    		while(i < j && a[j] >=  value)
    			j--;
    		while(i < j && a[i] <= value)
    			i++;
    		if(i < j)
    		{
    			int temp = a[i];
    			a[i] = a[j];
    			a[j] = temp;
    		}
    		a[low] = a[i];
    		a[i] = value;
    		return j;
    	}
    }
    

  • 相关阅读:
    python 练习洗牌
    python 生成二维码
    转载 HTTP协议
    分别使用python和java练习冒泡排序
    python-字符串
    [转]三层架构与MVC之间的区别
    [转]JAVA异常
    [转]JavaEE开发基础
    [转]JAVA对象容器
    数据库操作实例
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258443.html
Copyright © 2011-2022 走看看