对数组元素进行排序

1、选择排序

  就是将数组从第一个元素开始,依次与后面的元素进行比较,再将比较的最值替换。

 1 public class Demo{
 2     public static void main(String[] args) {
 3         int[] arry= {15,2,0,6,-3,49};
 4         printArray(arry);
 5         selectSort(arry);
 6         printArray(arry);
 7     }
 8     
 9     //打印数组
10     public static void printArray(int[] arr) {
11         System.out.print("[");
12         for(int x=0;x<arr.length;x++) {
13             if(x!=arr.length-1)
14                 System.out.print(arr[x]+",");
15             else
16                 System.out.println(arr[x]+"]");
17         }
18     }
19     //对数组进行选择排序(从小到大)
20     public static void selectSort(int[] arr) {
21         for(int x=0;x<arr.length-1;x++) {
22             for(int y=x+1;y<arr.length;y++) {
23                 if(arr[x]>arr[y]) {
24                     int temp=arr[x];
25                     arr[x]=arr[y];
26                     arr[y]=temp;
27                 }
28             }
29         }
30     }
31     
32 }

 2、冒泡排序:

  基础太差,智商跟不上,昨天看着代码想了半天^_^

 1 public class Demo
 2 {
 3     public static void main(String[] args)
 4     {
 5         int[] arr= {12,6,0,-9,66,35};
 6         int[] arr1= {222,55,-9,0,103};
 7         mSort1(arr);
 8         mSort2(arr1);
 9         printArry(arr);
10         System.out.println();
11         printArry(arr1);
12     }
13     public static void printArry(int[] arr) 
14     {
15         for(int i=0;i<arr.length;i++)
16         {
17             System.out.print(arr[i]+" ");
18         }
19     }
20     //冒泡排序 有两种写法,都是从小到大排序
21     public static void mSort1(int[] arr) 
22     {
23         for(int x=0;x<arr.length-1;x++) 
24         {
25             for(int y=0;y<arr.length-1-x;y++) 
26             {
27                 if(arr[y]>arr[y+1])
28                 {
29                     int temp=arr[y];
30                     arr[y]=arr[y+1];
31                     arr[y+1]=temp;
32                 }
33             }
34         }
35     }
36     public static void mSort2(int[] arr) 
37     {
38         for(int x=arr.length-1;x>0;x--) 
39         {
40             for(int y=0;y<x;y++) 
41             {
42                 if(arr[y]>arr[y+1]) 
43                 {
44                     int temp=arr[y];
45                     arr[y]=arr[y+1];
46                     arr[y+1]=temp;
47                 }
48             }
49         }
50     }
51 }

 

 1 public class Demo
 2 {
 3     public static void main(String[] args)
 4     {
 5         int[] arr= {12,6,0,-9,66,35};
 6         int[] arr1= {222,55,-9,0,103};
 7         mSort1(arr);
 8         mSort2(arr1);
 9         printArry(arr);
10         System.out.println();
11         printArry(arr1);
12     }
13     public static void printArry(int[] arr) 
14     {
15         for(int i=0;i<arr.length;i++)
16         {
17             System.out.print(arr[i]+" ");
18         }
19     }
20     //交换数组中数值的函数
21     public static void swapArray(int[] arr,int a,int b) //想要改变数组中的值,必须将数组作为参数传过来
22     {
23         int temp=arr[a];
24         arr[a]=arr[b];
25         arr[b]=temp;
26     }
27     //冒泡排序 有两种写法,都是从小到大排序
28     public static void mSort1(int[] arr) 
29     {
30         for(int x=0;x<arr.length-1;x++) 
31         {
32             for(int y=0;y<arr.length-1-x;y++) 
33             {
34                 if(arr[y]>arr[y+1])
35                 {
36                     swapArray(arr,y,y+1);
37                     /*
38                     int temp=arr[y];
39                     arr[y]=arr[y+1];
40                     arr[y+1]=temp;
41                     */
42                 }
43             }
44         }
45     }
46     public static void mSort2(int[] arr) 
47     {
48         for(int x=arr.length-1;x>0;x--) 
49         {
50             for(int y=0;y<x;y++) 
51             {
52                 if(arr[y]>arr[y+1]) 
53                 {
54                     int temp=arr[y];
55                     arr[y]=arr[y+1];
56                     arr[y+1]=temp;
57                 }
58             }
59         }
60     }
61 }

上面增加了一个交换数组中函数值的函数。

转载于:https://www.cnblogs.com/langdao/p/11008967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值