1.最便捷的方法
Arrays是用来操作数组的工具类,Arrays中有多方法可以调用,可以查看API文档看具体细节。
int[] a={23,4,564,2,76,45};
Arrays.sort(a);
2.冒泡排序法----许多人都知道的方法
理解思路(本人思路):
1)把最大数放在最后面,如果有n个数,则需要进行n-1次比较,要用到第一个for循环,
int[] a={23,4345,676,53,1,9};
for(int i=0;i<a.length-1;i++)
2)每次比较过程中,要把大数与小数调换位置,
第一次比较 交换n-1次 i=0
第二次比较 交换n-2次 i=1
所以要进行n-1-i次交换
for(int j=0;j<a.length-1-i;j++)
完整代码如下:
1 package com.briup.ch01;
2 import java.util.*;
3 public class Test1{
4 public static void main(String[] args){
5 int[] a={23,4,45,6,4,3,7};
6 for(int i=0;i<a.length-1;i++){
7 for(int j=0;j<a.length-1-i;j++){
8 if(a[j]>a[j+1]){
9 a[j]=a[j+1]+a[j];
10 a[j+1]=a[j]-a[j+1];
11 a[j]=a[j]-a[j+1];
12 }
13 }
14 }
15 System.out.println(Arrays.toString(a));
16
17 }
18
19 }
3.选择排序--研究了好久的方法
理解思路:
1)把最小数放在最前面,如果有n个数,则需要进行n-1次比较,要用到第一个for循环,
int[] a={23,4345,676,53,1,9};
for(int i=0;i<a.length-1;i++)
2)每一次比较过程中,都要从i开始以后的数中,选出最小值的下标(此处需要注意,是数组下标,而不是具体的值);然后利用最小数的下标与第i次比较中第一个数值(第i个数值)进行交换。
for(int j=i;j<a.length;j++)
完整代码如下:
1 package com.briup.ch01;
2 import java.util.*;
3 public class Test2{
4 public static void main(String[] args){
5 int[] a={43,5,2,67,7,8};
6 for(int i=0;i<a.length-1;i++){
7 int tem=i;
8 for(int j=i;j<a.length;j++){
9 if(a[j]<a[tem]){
10 tem=j;
11 }
12 }
13 int temp1=0;
14 temp1=a[tem];
15 a[tem]=a[i];
16 a[i]=temp1;
17 }
18 System.out.println(Arrays.toString(a));
19 }
20 }
4.插入排序--理解不是特别清楚
附上代码:
1 package com.briup.ch01;
2 import java.util.*;
3 public class Test2{
4 public static void main(String[] args){
5 int[] a={43,5,2,67,7,8};
6 for(int i=1;i<a.length;i++){
7 for(int j=i;j>0;j--){
8 if(a[j]<a[j-1]){
9 int tmp=a[j-1];
10 a[j-1]=a[j];
11 a[j]=tmp;
12 }
13 }
14 }
15 System.out.println(Arrays.toString(a));
16 }
17 }
理解思路:类似于打牌,手里拿到一张牌,再次抓牌的时候与已经有的牌从后向前进行比较,如果比较前一个小,则交换位置。