双向冒泡
1 package com.huang; 2 3 public class _014_bubb_sort { 4 5 int[] b={1,2}; 6 static int a[]={12,4,35,65,43,63,2,6,9,544,43543}; 7 public static void main(String[] args) { 8 display(); 9 10 //冒泡 11 for(int i=0;i<a.length/2;i++) 12 { 13 for(int j=0;j<a.length-i-1;j++) 14 { 15 if(a[j]>a[j+1]) 16 { 17 int temp=a[j]; 18 a[j]=a[j+1]; 19 a[j+1]=temp; 20 } 21 } 22 23 for(int j=a.length-i-1;j>i;j--) 24 { 25 if(a[j-1]>a[j]) 26 { 27 int temp=a[j]; 28 a[j]=a[j-1]; 29 a[j-1]=temp; 30 } 31 } 32 33 } 34 35 36 37 display(); 38 39 40 41 } 42 43 44 45 public static void display(){ 46 for(int i=0;i<a.length;i++) 47 { 48 System.out.print(a[i]+" "); 49 } 50 System.out.println(); 51 } 52 }
选择排序
1 package com.huang; 2 3 public class _015_select_sort_get_min_to_left { 4 5 static int a[]={12,65475675,4,35,65,43,63,2,6,9,544,43543}; 6 public static void main(String[] args) { 7 display(); 8 9 //选择排序 得到最小值下标 然后换到最左边 10 11 for(int i=0;i<a.length-1;i++) 12 { 13 int min=i; 14 for(int j=i+1;j<a.length;j++) 15 { 16 if(a[j]<a[min]) 17 { 18 min=j; 19 } 20 } 21 int temp=a[min]; 22 a[min]=a[i]; 23 a[i]=temp; 24 } 25 26 27 28 display(); 29 30 31 32 } 33 34 35 36 public static void display(){ 37 for(int i=0;i<a.length;i++) 38 { 39 System.out.print(a[i]+" "); 40 } 41 System.out.println(); 42 } 43 }
插入排序
1 package com.huang; 2 3 public class _016_insert_sort_move_right_1 { 4 5 static int a[]={12,65475675,4,35,65,43,63,2,6,9,544,43543}; 6 public static void main(String[] args) { 7 display(); 8 9 //插入排序 不是2个for循环 而是1个for循环加一个while循环 带右移 10 for(int i=1;i<a.length;i++) 11 { 12 int temp=a[i]; 13 int j=i-1;//从这个数的左边开始比较 14 while(j>=0&&a[j]>temp)//注意不能把temp换成a[i]因为a[i]要变 //j>=0 =0表示要排列第一个数 15 { 16 a[j+1]=a[j];//右移 17 j--;//回溯 18 } 19 20 a[j+1]=temp;//插入 21 } 22 23 24 25 26 display(); 27 28 29 30 } 31 32 33 34 public static void display(){ 35 for(int i=0;i<a.length;i++) 36 { 37 System.out.print(a[i]+" "); 38 } 39 System.out.println(); 40 } 41 }