首页 > 代码库 > 冒泡排序 选择排序 插入排序 java

冒泡排序 选择排序 插入排序 java

双向冒泡

 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     }