標籤:
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]+" "); } } }
插入排序,選擇排序,冒泡排序等常用排序演算法(java實現)