public static void main(String a[]){ //jdk1。5以上 System.out.println("int类型分割大小为限制定为2位把"); System.out.println("从键盘上键入一个任意的数:"); Scanner s = new Scanner(System.in); //data为 ---实现从键盘上键入一个任意的数 String data = s.nextLine(); int[] b = getData(data); //插入排序 insert(b); //快速排序 //fast(b) /** * 输出结果 */ for(int i = 0;i<b.length;i++){
System.out.println(b[i]); }
} //随机产生键入数字大小的数组;
public static int[] getData(String a){ StringBuffer aString = new StringBuffer(a); int bb[]; if(1==aString.length()%2){ bb = new int [aString.length()/2+1]; }else{ bb= new int [aString.length()/2]; }
try { for(int i = 0;i<aString.length()/2;i++){ String c = aString.substring(2*i,2*i+2).toString(); bb[i]=Integer.parseInt(c); } } catch (Exception e) { e.printStackTrace(); }
} return a; } /** * 插入排序 * */ public static int[] insert(int[] a) { int out, in; for ( out = 1; out < a.length; out++ ) { int temp = a[out]; in = out; while ( in > 0 && a[in - 1] >= temp ) { a[in] = a[in - 1]; --in; } a[in] = temp; }
return a ; } }
还凑合吧??楼主自己看看,顺便给我做下测试import java.util.*; public class Test { public static void main(String[] args) { Scanner s = new Scanner(System.in); //键入的数,在这里没处理异常 int length = s.nextInt(); int[] a = new int[length]; //下面随机生产数组中的元素 Random random = new Random(); for(int i = 0; i < length; i++) { a[i] = random.nextInt(length); } //定义int数组b,让它的元素的值与a相等 int[] b = new int[length]; for(int i = 0; i < length; i++) { b[i] = a[i]; } //进行排序并输出 System.out.println("Quick Sort:"); quickSort(a); StringBuilder sb = new StringBuilder(); for(int i : a) { sb.append(i + ", "); } sb.delete(sb.lastIndexOf(","), sb.length()); System.out.println(sb); System.out.println("Insertion Sort:"); insertionSort(b); sb = new StringBuilder(); for(int i : b) { sb.append(i + ", "); } sb.delete(sb.lastIndexOf(","), sb.length()); System.out.println(sb); } /** * 对数组进行分割,随便取出一个数(temp),一般取第一个,进行分割后 * temp的左边将比temp小,右边比temp大 */ public static int partion(int[] a, int low, int high) { //取第一个点当作支点 int temp = a[low]; while(low < high) { //从右边开始扫描,一直到右边的值比temp(支点)小 while (low < high && temp <= a[high]) { high--; } if(low < high) { a[low++] = a[high]; } //再从左边开始扫描,一直到左边的值比temp(支点)大 while (low < high && temp >= a[low]) { low++; } if(low < high) { a[high--] = a[low]; } } a[low] = temp; return low; } public static void qSort(int[] a, int low, int high) { int p = partion(a, low, high); //对左边进行递归 if (p - 1 > low) { qSort(a, low, p - 1); } //对右边进行递归 if (p + 1 < high) { qSort(a, p + 1, high); } } public static void quickSort(int[] a) { qSort(a, 0, a.length - 1); }
//直接插入排序 public static void insertionSort(int[] a) { int i; int j; int temp = 0; for(i = 1; i < a.length; i++) { if(a[i] < a[i-1]) { temp = a[i]; for(j = i-1; j >= 0 && temp < a[j] ; j--) { a[j+1] = a[j]; } a[j+1] = temp; } } } }
import javax.swing.JOptionPane;public class Sort { public static int hoare(int[] a, int l, int h)//分区处理函数 { int i, j; int x; i = l; j = h; x = a[i]; do { while ((i < j) && (a[j] >= x)) { j--; } if (i < j) { a[i] = a[j]; i++; } while ((i < j) && (a[i] <= x)) { i++; } if (i < j) { a[j] = a[i]; j--; } } while (i < j); a[i] = x; return (i); }//hoare end public static void quickSort(int[] a, int l, int h)//递归的快速排序 { int i; if (l < h) { i = hoare(a, l, h); quickSort(a, l, i - 1); quickSort(a, i + 1, h); } }//quickSort end public static void insertSort(int[] a){//插入排序 int tem,j; for(int i=1;i<a.length;i++){ if(a[i]<a[i-1]){ tem=a[i]; a[i]=a[i-1]; for(j=i-2;j>=0&&tem<a[j];j--)a[j+1]=a[j]; a[j+1]=tem; } } } public static void main(String[] args) { String input=JOptionPane.showInputDialog(null,"输入数组长度"); int n=Integer.parseInt(input); int[] a=new int[n]; for(int i=0;i<n;i++){ a[i]=(int)(Math.random()*100); } for(int i=0;i<n;i++)System.out.print(a[i]+" "); System.out.println(); Sort.quickSort(a, 0, n-1); Sort.insertSort(a); for(int i=0;i<n;i++)System.out.print(a[i]+" "); } }
package csdnTest;import java.util.Arrays; import java.util.Scanner;public class Test { /** * 获取控制台输入数字 * * @return * * @author kakukyowu */ @SuppressWarnings("unused") private static int getScanner() { System.out.println('\n' + "请输入一个数字:"); Scanner s = new Scanner(System.in); return Integer.parseInt(s.nextLine()); } /** * 数组排序 * * @param arrays * @return * * @author kakukyowu */ private static int[] orgArrays(int[] arrays) { Arrays.sort(arrays); return arrays; } /** * 打印排序后的数组内容 * * @param arrays * * @author kakukyowu */ private static void printArraysInfo(int[] arrays) { System.out.print("["); for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]); if (i != arrays.length - 1) { System.out.print(", "); } } System.out.print("]"); } /** * main * * @param a * * @author kakukyowu */ public static void main(String args[]) { int[] arrays = null; int[] arraysCopy = null; int tag = -1; while (true) { int count = 0; try { count = getScanner(); } catch (Exception e) { System.out.println("输入的数字有误!继续输入【yes】,结束输入其它键!"); Scanner s = new Scanner(System.in); if ("yes".equals(s.nextLine())) { continue; } else { System.out.println("GAME OVER!!!"); break; } } tag++; if (tag == 0) { arrays = new int[tag + 1]; arrays[tag] = count; } else { arraysCopy = new int[tag + 1]; System.arraycopy(arrays, 0, arraysCopy, 0, arrays.length); arraysCopy[tag] = count; arrays = new int[tag + 1]; System.arraycopy(arraysCopy, 0, arrays, 0, arraysCopy.length); } arrays = orgArrays(arrays); printArraysInfo(arrays); } } }
我来凑个热闹。 我这个方法用了冒泡排序 package test;public class MaoPaoMethod { public static void main(String args[]) { System.out.println("hello world!"); new maoPao(); } }class maoPao { maoPao() { int a[] = {1, 54, 3, 56 }; int b; for (int i = 0; i < a.length; i++) {//总循环数 for (int m = i + 1; m < a.length; m++) {//前后数比对的次数 if (a[i] > a[m]) {//if体就是为了把小数放在前面 ,大数放后面 b = a[i]; a[i] = a[m]; a[m] = b; } } System.out.println(a[i]); } } }
public static void main(String a[]){
//jdk1。5以上
System.out.println("int类型分割大小为限制定为2位把");
System.out.println("从键盘上键入一个任意的数:");
Scanner s = new Scanner(System.in);
//data为 ---实现从键盘上键入一个任意的数
String data = s.nextLine();
int[] b = getData(data);
//插入排序
insert(b);
//快速排序
//fast(b)
/**
* 输出结果
*/
for(int i = 0;i<b.length;i++){
System.out.println(b[i]);
}
}
//随机产生键入数字大小的数组;
public static int[] getData(String a){
StringBuffer aString = new StringBuffer(a);
int bb[];
if(1==aString.length()%2){
bb = new int [aString.length()/2+1];
}else{
bb= new int [aString.length()/2];
}
try {
for(int i = 0;i<aString.length()/2;i++){
String c = aString.substring(2*i,2*i+2).toString();
bb[i]=Integer.parseInt(c);
}
} catch (Exception e) {
e.printStackTrace();
}
if(1==aString.length()%2){
bb[bb.length-1]=Integer.parseInt(aString.substring(aString.length()-1, aString.length()));
}
return bb;
}
/**
* 快速排序从小到大
*/
public static int[] fast(int[] a){
int temp ;
for(int i = 0;i<a.length;i++){
for(int j = 0;j<a.length-1;j++){
//从小到大
if(a[j]>a[j+1]){
temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
/**
* 插入排序
*
*/
public static int[] insert(int[] a)
{
int out, in;
for ( out = 1; out < a.length; out++ )
{
int temp = a[out];
in = out;
while ( in > 0 && a[in - 1] >= temp )
{
a[in] = a[in - 1];
--in;
}
a[in] = temp;
}
return a ;
}
}
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
//键入的数,在这里没处理异常
int length = s.nextInt();
int[] a = new int[length];
//下面随机生产数组中的元素
Random random = new Random();
for(int i = 0; i < length; i++) {
a[i] = random.nextInt(length);
}
//定义int数组b,让它的元素的值与a相等
int[] b = new int[length];
for(int i = 0; i < length; i++) {
b[i] = a[i];
}
//进行排序并输出
System.out.println("Quick Sort:");
quickSort(a);
StringBuilder sb = new StringBuilder();
for(int i : a) {
sb.append(i + ", ");
}
sb.delete(sb.lastIndexOf(","), sb.length());
System.out.println(sb); System.out.println("Insertion Sort:");
insertionSort(b);
sb = new StringBuilder();
for(int i : b) {
sb.append(i + ", ");
}
sb.delete(sb.lastIndexOf(","), sb.length());
System.out.println(sb);
}
/**
* 对数组进行分割,随便取出一个数(temp),一般取第一个,进行分割后
* temp的左边将比temp小,右边比temp大
*/
public static int partion(int[] a, int low, int high) {
//取第一个点当作支点
int temp = a[low];
while(low < high) {
//从右边开始扫描,一直到右边的值比temp(支点)小
while (low < high && temp <= a[high]) {
high--;
}
if(low < high) {
a[low++] = a[high];
}
//再从左边开始扫描,一直到左边的值比temp(支点)大
while (low < high && temp >= a[low]) {
low++;
}
if(low < high) {
a[high--] = a[low];
}
}
a[low] = temp;
return low;
}
public static void qSort(int[] a, int low, int high) {
int p = partion(a, low, high);
//对左边进行递归
if (p - 1 > low) {
qSort(a, low, p - 1);
}
//对右边进行递归
if (p + 1 < high) {
qSort(a, p + 1, high);
}
}
public static void quickSort(int[] a) {
qSort(a, 0, a.length - 1);
}
//直接插入排序
public static void insertionSort(int[] a) {
int i;
int j;
int temp = 0;
for(i = 1; i < a.length; i++) {
if(a[i] < a[i-1]) {
temp = a[i];
for(j = i-1; j >= 0 && temp < a[j] ; j--) {
a[j+1] = a[j];
}
a[j+1] = temp;
}
}
}
}
import javax.swing.JOptionPane;public class Sort { public static int hoare(int[] a, int l, int h)//分区处理函数
{
int i, j;
int x;
i = l;
j = h;
x = a[i];
do {
while ((i < j) && (a[j] >= x)) {
j--;
}
if (i < j) {
a[i] = a[j];
i++;
}
while ((i < j) && (a[i] <= x)) {
i++;
}
if (i < j) {
a[j] = a[i];
j--;
}
} while (i < j);
a[i] = x;
return (i);
}//hoare end
public static void quickSort(int[] a, int l, int h)//递归的快速排序
{
int i;
if (l < h) {
i = hoare(a, l, h);
quickSort(a, l, i - 1);
quickSort(a, i + 1, h);
}
}//quickSort end public static void insertSort(int[] a){//插入排序
int tem,j;
for(int i=1;i<a.length;i++){
if(a[i]<a[i-1]){
tem=a[i];
a[i]=a[i-1];
for(j=i-2;j>=0&&tem<a[j];j--)a[j+1]=a[j];
a[j+1]=tem;
}
}
} public static void main(String[] args) {
String input=JOptionPane.showInputDialog(null,"输入数组长度");
int n=Integer.parseInt(input);
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=(int)(Math.random()*100);
}
for(int i=0;i<n;i++)System.out.print(a[i]+" ");
System.out.println();
Sort.quickSort(a, 0, n-1);
Sort.insertSort(a);
for(int i=0;i<n;i++)System.out.print(a[i]+" ");
}
}
import java.util.Scanner;public class Test { /**
* 获取控制台输入数字
*
* @return
*
* @author kakukyowu
*/
@SuppressWarnings("unused")
private static int getScanner() { System.out.println('\n' + "请输入一个数字:");
Scanner s = new Scanner(System.in); return Integer.parseInt(s.nextLine());
} /**
* 数组排序
*
* @param arrays
* @return
*
* @author kakukyowu
*/
private static int[] orgArrays(int[] arrays) { Arrays.sort(arrays);
return arrays;
} /**
* 打印排序后的数组内容
*
* @param arrays
*
* @author kakukyowu
*/
private static void printArraysInfo(int[] arrays) { System.out.print("["); for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]);
if (i != arrays.length - 1) {
System.out.print(", ");
}
} System.out.print("]");
} /**
* main
*
* @param a
*
* @author kakukyowu
*/
public static void main(String args[]) { int[] arrays = null;
int[] arraysCopy = null;
int tag = -1; while (true) {
int count = 0;
try {
count = getScanner();
} catch (Exception e) {
System.out.println("输入的数字有误!继续输入【yes】,结束输入其它键!");
Scanner s = new Scanner(System.in);
if ("yes".equals(s.nextLine())) {
continue;
} else {
System.out.println("GAME OVER!!!");
break;
}
}
tag++; if (tag == 0) {
arrays = new int[tag + 1];
arrays[tag] = count;
} else {
arraysCopy = new int[tag + 1];
System.arraycopy(arrays, 0, arraysCopy, 0, arrays.length);
arraysCopy[tag] = count; arrays = new int[tag + 1];
System.arraycopy(arraysCopy, 0, arrays, 0, arraysCopy.length);
} arrays = orgArrays(arrays);
printArraysInfo(arrays);
}
}
}
我这个方法用了冒泡排序
package test;public class MaoPaoMethod {
public static void main(String args[]) {
System.out.println("hello world!");
new maoPao();
}
}class maoPao {
maoPao() {
int a[] = {1, 54, 3, 56 };
int b;
for (int i = 0; i < a.length; i++) {//总循环数
for (int m = i + 1; m < a.length; m++) {//前后数比对的次数
if (a[i] > a[m]) {//if体就是为了把小数放在前面 ,大数放后面
b = a[i];
a[i] = a[m];
a[m] = b;
}
}
System.out.println(a[i]);
}
}
}