- package com.test.算法分析;
- import java.util.Scanner;
- public class QuickSort {
- /**
- * @param args
- */
- public static void main(String[] args) {
- int c[]=InputNumber();//定义一个数组来存放所输入的数组
- quickSort(c,0,c.length-1);
- printArray(c);
- }
- public static int[] InputNumber(){
- System.out.println("请输入你要排序的个数:");
- Scanner scan=new Scanner(System.in);
- int length=scan.nextInt();
- int a[]=new int[length];
- System.out.println("请输入待排序的数据:");
- for(int i=0;i<a.length;i++)
- a[i]=scan.nextInt();
- return a;
- }
- //核心算法代码
- public static void quickSort(int array[],int left,int right){
- if(left<right){
- int s=parssion(array,left,right);
- quickSort(array,left,s-1);
- quickSort(array,s,right);
- }
- }
- public static int parssion(int array[], int left, int right) {
- int pivot = array[left];
- while (left <right) {
- while (right > left&&array[left] <array[right] ) {
- right--;
- }
- if(right>left){
- int temp=0;
- temp=array[right];
- array[right]=array[left];
- array[left]=temp;
- }
- //swap(pivot, array[right]);
- ++left;
- while (right > left&&array[left] <array[right] ) {
- left++;
- }
- if(right>left){
- int temp=0;
- temp=array[left];
- array[left]=array[right];
- array[right]=temp;
- }
- //swap(pivot, array[left]);
- }
- printArray(array);
- System.out.println();
- return left;
- }
- /**
- *
- * @param a
- * @param b
- */
- public static void swap(int a,int b){
- int temp=0;
- temp=b;
- b=a;
- a=temp;
- System.out.println(a+" "+b);
- }
- /**
- *
- * @param array
- */
- public static void printArray(int array[]){
- for(int a:array)
- System.out.print(a+",");
- }
- }