冒泡排序与插入排序
今天我回顾了一下原来的排序方法,现在分享如下:冒泡排序:两种实现方式:一个是直接实现:如下:

Code
1
int[] 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接口:代码如下:

Code
1
public 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
1
int[] a =
{23,12,3,45,25,46,75,15,12,52};
2
for(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
}
1

int[] 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
}1
public 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
}1

int[] a =
{23,12,3,45,25,46,75,15,12,52};2
for(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
}
浙公网安备 33010602011771号