quicksort.java

来自「java 实现常用数据结构(链表」· Java 代码 · 共 58 行

JAVA
58
字号
/*
 * QuickSort.
 * @Author: zhengbotai.
 * @Date: 2007.5
*/

package dreamer.util;
import static java.lang.System.out;
public class QuickSort
{
	public static void sort(int [] array,int s,int e)
	{
		int i = s;
		int j = e+1;
		int flag = array[s];
		
		do
		{
			
			do
			{
				i = i+1;
			}while(array[i]<flag); // while array[i]>flag break;
			// the array[i] is max in the earea.

			do
			{
				j = j-1;
			}while(array[j]>flag);
			// the array[j] is min in the earea.

			if(i<j)
			{
				int tmp = array[i];
				array[i] = array[j];
				array[j] = tmp;
			}// exchange the min forward and max back.
			
		}while(i<j);
		// i>j ;
		array[s] = array[j];
		array[j] = flag;
		if(s<j-1)
			sort(array,s,j-1);
		if(j+1<e)
			sort(array,j+1,e);
	}
	
	public static void main (String[] args) 
	{
		int [] array = {3,2,2,4,1};
		sort(array,0,4);
		for(int a: array)
		{
			out.print(a+" ");
		}
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?