冒泡排序与插入排序
今天我回顾了一下原来的排序方法,现在分享如下:冒泡排序:两种实现方式:一个是直接实现:如下:
Code
1int[] a ={23,12,3,45,25,46,75,15,12,52};
2 int temp = 0;
3 for(int i=0;i<a.length;i++)
4 {
5 for(int j=0;j<a.length-i-1;j++)
6 {
7 if(a[j]>a[j+1])
8 {
9 temp = a[j];
10 a[j] = a[j+1];
11 a[j+1] = temp;
12 }
13 }
14 }
直接运行可以打印出结果,又一种实现方法是实现一个Comparable接口:代码如下:
1int[] a ={23,12,3,45,25,46,75,15,12,52};
2 int temp = 0;
3 for(int i=0;i<a.length;i++)
4 {
5 for(int j=0;j<a.length-i-1;j++)
6 {
7 if(a[j]>a[j+1])
8 {
9 temp = a[j];
10 a[j] = a[j+1];
11 a[j+1] = temp;
12 }
13 }
14 }
Code
1public void bubble(Comparable[] a)
2 {
3 Comparable t;//交换时的临时变量
4 int n = a.length;
5 boolean flag ;
6 for(int i=1;i<n-1;i++)
7 {
8 flag = false;
9 for(int j=0;j<n-i;j++)
10 {
11 if(a[j].compareTo(a[j+1])>0)
12 {
13 t = a[j];
14 a[j] = a[j+1];
15 a[j+1] = t;
16 flag = true;
17 }
18 }
19 if(!flag)
20 {
21
22 for(int k=0;k<n;k++)
23 {
24 System.out.println(a[k]+"\t");
25 }
26 break;
27 }
28 }
29 }
插入排序代码如下:
1public void bubble(Comparable[] a)
2 {
3 Comparable t;//交换时的临时变量
4 int n = a.length;
5 boolean flag ;
6 for(int i=1;i<n-1;i++)
7 {
8 flag = false;
9 for(int j=0;j<n-i;j++)
10 {
11 if(a[j].compareTo(a[j+1])>0)
12 {
13 t = a[j];
14 a[j] = a[j+1];
15 a[j+1] = t;
16 flag = true;
17 }
18 }
19 if(!flag)
20 {
21
22 for(int k=0;k<n;k++)
23 {
24 System.out.println(a[k]+"\t");
25 }
26 break;
27 }
28 }
29 }
Code
1int[] a ={23,12,3,45,25,46,75,15,12,52};
2for(int i=1;i<a.length;i++)
3 {
4 if(a[i]<a[i-1])
5 {
6 int n = a[i];
7 for(int j=i-1;j>=0&&n<a[j];j--)
8 {
9 a[j+1] = a[j];
10 a[j] = n;
11 }
12 }
13 }
14 for(int i=0;i<a.length;i++)
15 {
16 System.out.print(a[i]+"\t");
17 }
18
19 }
1int[] a ={23,12,3,45,25,46,75,15,12,52};
2for(int i=1;i<a.length;i++)
3 {
4 if(a[i]<a[i-1])
5 {
6 int n = a[i];
7 for(int j=i-1;j>=0&&n<a[j];j--)
8 {
9 a[j+1] = a[j];
10 a[j] = n;
11 }
12 }
13 }
14 for(int i=0;i<a.length;i++)
15 {
16 System.out.print(a[i]+"\t");
17 }
18
19 }