package com.itheima;import java.io.*;import java.util.*;public class quick_sort {//我是打算做排序,从键盘输入一10个数字,然后用快速排序,最后输出, //我的 快速排序总是报错说溢出,除了用Scaner 还有什么方法能从键盘读int 数据 public static void main(String []args)throws IOException { System.out.println("请输入你要排序的10个数字,按回车结束"); int array[]=new int[10]; //DataInputStream dis = new DataInputStream(System.in); //打算用 字符流从控制台输入 数字 //BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); /*for(int i=0;i<array.length;i++) { array[i]=dis.readInt(); }*/ Scanner in=new Scanner(System.in); for(int i=0;i<10;i++) { array[i]=in.nextInt(); } //int array[]={99,56,45,5,89,14,25,69,10,45}; show_(array); //sort_(array,0,array.length-1); //快速排序 bubble_sort(array); //冒泡排序 System.out.println(" "); show_(array); } /*for(int i:array) { array[i]=(int)bufr.readLine(); } }*/ public static void swap(int a[], int i, int j) { if (i == j) return;
int temp = a[i]; a[i] = a[j]; a[j] = temp;
} /*public static int temp_(int arr[],int low,int high) { int temp=low; int p=arr[temp]; for(int i=low+1;i<=high;i++) { if(arr[i]<p) { temp++; swap(arr,temp,i); } } swap(arr,low,temp); return temp; } */ //快速排序 public static int temp_(int arr[],int low,int high) { int key=arr[low]; while(low<high) { while(low<high&&arr[high]>=key) high--; arr[low]=arr[high]; while(low<high&&arr[low]<=key) low++; arr[high]=arr[low]; } arr[low]=key; return low; } //冒泡排序 public static void bubble_sort(int arr[]) { for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1;j++){ if(arr[j]>arr[j+1]){ int t=arr[j]; arr [j]=arr[j+1]; arr[j+1]=t; } } } } //递归 public static void sort_(int arr[],int low,int high) { if(low<high) { int p=temp_(arr,low,high); temp_(arr,low,p-1); temp_(arr,p+1,high); } } public static void show_(int arr[]) { for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } }/* public static void sort_(int arr[],int low,int high) { if(low<high){ int a=temp_(arr,low,high); temp_(arr,low,a-1); temp_(arr,a+1,high); } }*/ }
|
|