1 package test;
2
3 public class test {
4
5 /**
6 * @param args
7 */
8 public static void main(String[] args) {
9 int[] ary = new int[]{3,4,6,25,5,46,23,78};
10 //printArray(ary);
11 int[] ary1 = selectionSort(ary);
12 //printArray(ary1);//选择排序结果
13 int[] ary2 = bubbleSort(ary);
14 //printArray(ary2);//冒泡排序结果
15 int[] ary3 = insertSort(ary);
16 printArray(ary3);//插入排序结果
17 }
18 public static void printArray(int[] source){
19 for(int i=0;i<source.length-1;i++){
20 System.out.println(source[i]);
21 }
22 }
23
24 //选择排序:a>将数组中的每个元素与第一个元素比较,如果这个元素小于第一个元素,就将这两个元素交换。
25 //b>每轮使用a的规则可以找出一个最小元素放到第一的位置
26 //c>经过n-1轮比较完成排序
27 public static int[] selectionSort(int[] ary){
28 for(int i=0;i<ary.length-1;i++){
29 for(int j=i+1;j<ary.length;j++){
30 if(ary[i]>ary[j]){
31 int temp = ary[i];
32 ary[i]= ary[j];
33 ary[j]= temp;
34 }
35 }
36 }
37 return ary;
38 }
39
40 //冒泡排序:a>逐一比较数组中相邻元素,如果后面的元素小于前面的元素那么交换它们的位置
41 //b>经过一个轮次的比较,一定有一个最大的元素排在最后面
42 //c>剩下的元素经过n-1次比较,可以实现排序
43 public static int[]bubbleSort(int[]ary){
44 for(int i=0;i<ary.length-1;i++){
45 for(int j=0;j<ary.length-(i+1);j++){
46 if(ary[j]<ary[j+1]){
47 int temp = ary[j];
48 ary[j]= ary[j+1];
49 ary[j+1]= temp;
50 }
51 }
52 }
53 return ary;
54 }
55
56 //插入排序:a>将数组分成两部分,将后面部分的第一个元素逐一与前面的每一个元素相比较
57 //b>找到合理位置插入
58 public static int[] insertSort(int[]ary){
59 for(int i=1;i<ary.length;i++){
60 int temp = ary[i];
61 int j;
62 for( j=i-1;j>=0;j--){
63 if(temp<ary[j]){
64 ary[j+1] = ary[j];
65 }else{
66 break;
67 }
68 }
69 ary[j+1] = temp;
70 }
71 return ary;
72 }
73
74 }

 

posted on 2012-02-09 14:55  你妹啊。  阅读(444)  评论(0)    收藏  举报