一、冒泡排序
把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….
我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。
除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成
package
org.junit;
public
class
PaiXu {
/**
* @param args
*/
public
static
void
main(String[] args) {
// TODO Auto-generated method stub
int
[] a={
10
,
25
,
96
,
2
,
15
,
4
,
45
,
16
,
98
};
paixu(a);
for
(
int
i=
0
;i<a.length;i++){
System.out.println(a[i]);
}
}
public
static
void
paixu(
int
[]a){
for
(
int
i=
0
;i<a.length-
1
;i++){
for
(
int
j=
0
;j<a.length-
1
-i;j++){
if
(a[j]>a[j+
1
]){
int
jiaohuan=a[j];
a[j]=a[j+
1
];
a[j+
1
]=jiaohuan;
}
}
}
}
}
1、从数组第2个元素开始抽取元素。
2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。
首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法我们称之为选择排序。
package
org.junit;
public
class
PaiXu2 {
public
static
void
main(String[] args) {
// TODO Auto-generated method stub
int
[]a={
12
,
45
,
46
,
5
,
15
,
32
,
4
};
xuanzhe(a);
for
(
int
i=
0
;i<a.length;i++){
System.out.println(a[i]);
}
}
public
static
void
xuanzhe(
int
[]a){
for
(
int
i=
0
;i<a.length-
1
;i++){
int
min=i;
for
(
int
j=i+
1
;j<a.length;j++){
if
(a[min]>a[j]){
min=j;
}
}
if
(min!=i){
int
t;
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
}
}
三、插入排序
1、从数组第2个元素开始抽取元素。
2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。
package org.junit;
import java.util.Arrays;
public class PaiXu3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = { 12, 45, 46, 5, 15, 32, 4 };
v(a);
/*for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
插入排序
}
*/
}
public static void v(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
int cu = a[i + 1];
int j = i;
while (j >= 0 && a[j] > cu) {
a[j + 1] = a[j];
j--;
a[j + 1] = cu;
}
}
System.out.println(Arrays.toString(a));
}
}