排序算法

12  5  17  8  9将该组数进行从大到小的排序。 

思路:使用索引值为0的元素与其他位置的元素进行比较,如果比索引值为0的元素大,则进行位置的交换。

首先12 5 17 8 9 为第一轮,本轮12分别与其余数字进行比较大小如果遇到比他大的则进行位置交换,一共比较4次,即小于数组长度大小。结果是17 5 12 8 9

1 for(int i=1;i<arr.length;i++)
2         {
3             if(arr[i]>arr[0])
4             {
5                 int temp=arr[i];
6                 arr[i]=arr[0];
7                 arr[0]=temp;
8             }
9         }

注意:arr[0]就是值数组的第一个数,即12.

第二轮:17 5 12 8 9 其中17已经是数组当中的最大值,不再参与比较,从5开始进行比较,5分别与12 8 9 进行比较,比较次数为3 ,遇到比自己大的就会进行位置交换。结果:17 12 5 8 9.

代码:

1 for(int i=2;i<arr.length;i++)
2         {
3             if(arr[i]>arr[1])
4             {
5                 int temp=arr[i];
6                 arr[i]=arr[1];
7                 arr[1]=temp;
8             }
9         }

第三轮:17 12 5 8 9 进行比较,其中17 12 不再参与比较,从5开始进行,5分别与8 9 进行比较,比较次数为2次,遇到比自己大的则进行位置交换。结果:17,12,9,5,8

代码:

1 for(int i=3;i<arr.length;i++)
2         {
3             if(arr[i]>arr[2])
4             {
5                 int temp=arr[i];
6                 arr[i]=arr[2];
7                 arr[2]=temp;
8             }
9         }

第四轮:17 12 9 5 8进行比较,17 12 9 不再参与比较,只有5与8 进行比较,比较一次,如果8比5大,就位置交换。结果:17 12 9 8 5

综上:一共5个数字比较了4轮,每一轮的比较方法都是一样的,

代码:

 1 public class 练习2 {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5 
 6         int[] arr={12,5,17,8,9};
 7         paiXu(arr);
 8     }
 9 
10     public static void  paiXu(int[] arr)
11     {
12         for(int j=0;j<arr.length-1;j++)//控制循环的轮数
13         {
14             for(int i=j+1;i<arr.length;i++)//找出每一轮的最大值
15             {
16                 if(arr[j]<arr[i])
17                 {
18                     int temp=arr[j];
19                     arr[j]=arr[i];
20                     arr[i]=temp;
21                 }
22             }
23         }
24         
25         //效果检验
26         for(int i=0;i<arr.length;i++)
27         {
28             System.out.println(arr[i]+",");
29         }
30         
31     }
32 }

 下面是从小到大的排序代码:

 1 public class 练习3 {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5 
 6         int[] arr={12,5,17,8,9};
 7         paiXu(arr);
 8     }
 9     public static void paiXu(int[] arr)
10     {
11         for(int j=0;j<arr.length-1;j++)
12         {
13             for(int i=j+1;i<arr.length;i++)
14             {
15                 if(arr[j]>arr[i])
16                 {
17                     int temp=arr[j];
18                     arr[j]=arr[i];
19                     arr[i]=temp;
20                 }
21             }
22         }
23         for(int i=0;i<arr.length;i++)
24         {
25             System.out.println(arr[i]);
26         }
27             
28     }
29 
30 }

 

posted @ 2017-07-27 14:30  柳青依觉  阅读(92)  评论(0编辑  收藏  举报