标签:
package org.webdriver.autotest.Study; import java.util.*; public class sort_examp{ public static void main(String[] args) { Integer[] num={49,38,65,97,76,13,27,49,78,34,12,64,1}; //insertsort(num); //selectsort(num); maopaosort(num); } //直接插入排序 public static void insertsort(Integer[] num) { System.out.println("排序之前:"); for(int i=0;i<num.length;i++) { System.out.print(num[i]+" "); } System.out.println(); //直接插入排序,从数组第二个位置开始 for(int i=1;i<num.length;i++) { //待插入元素,从第二个元素开始.num[i]为前一组元素 int insertnum=num[i]; int j; for(j=i-1;j>=0;j--) { //将大于待插入元素的,值往后移1位,num[j]为后一组元素 if(num[j]>insertnum) {num[j+1]=num[j];}else { break; } } //直到不存在num[j]>insertnum的时候,不移动位置 num[j+1]=insertnum; System.out.println(); System.out.println("第:"+i+"轮排序"); for (int k = 0; k < num.length; k++) { System.out.print(num[k]+" "); } } System.out.println(); System.out.println("排序之后:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i]+" "); } } //选择排序 public static void selectsort(Integer[] num) { System.out.println("排序之前:"); for(int i=0;i<num.length;i++) { System.out.print(num[i]+","); } System.out.println(); //i为排序结果的顺序号 for(int i=0;i<num.length;i++) { //假定一个最小值min int min=num[i]; //n存储最小值索引(位置) int n=i; //从第二个数开始比较,把每次比较出的最小值放到左边 for(int j=i+1;j<num.length;j++) { if(num[j]<min)//找出最小值 { //num[j]最小,将num[j]赋值给min,并记录num[j]原来的位置保存到n min=num[j]; n=j; } //将最小值跟比较值交换位置,将num[i]放到num[j]的位置 num[n]=num[i]; //将最小值按顺序放到i的位置 num[i]=min; } System.out.println(); int l=i+1; System.out.println("第:"+l+"轮排序"); for (int k = 0; k < num.length; k++) { System.out.print(num[k]+" "); } } System.out.println(); System.out.println("排序之后:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i]+" "); } } //冒泡排序 public static void maopaosort(Integer[] num) { System.out.println("排序之前:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i]+" "); } //冒泡排序 for (int i = 0; i < num.length; i++) { for(int j = 0; j<num.length-i-1; j++) { //这里-i主要是每遍历一次都把最大的i个数沉到最底下去了,没有必要再替换了 if(num[j]>num[j+1]) { int temp = num[j]; num[j] = num[j+1]; num[j+1] = temp; } } System.out.println(); int l=i+1; System.out.println("第:"+l+"轮排序"); for (int k = 0; k < num.length; k++) { System.out.print(num[k]+" "); } } System.out.println(); System.out.println("排序之后:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i]+" "); } } }
标签:
原文地址:http://my.oschina.net/u/2434626/blog/494213