java数组排序
思路:
从小到大排序
假设数组里有10个数字,先从【0】号开始,分别与后面的每一号进行比较,若后面的比前面的大,则设置一个变量当做媒介,使两个元素交换位置,以此类推得到一个最小的;第二轮从【1】号开始,但是【1】已经与【0】号比较过了,在进行一次比较繁琐(如果后面数组的元素很多,则每一位都需要再与前面以为相比较),所以可以在嵌套的for语句中加上:
for(int i =0;i<arr.length;i++) {
for(int j =i+1;j<arr.length;j++)
这样就不会与再与比较过的元素再比较,以此类推得到排序好的数组
从大到小排序也是这样以此类推,但是要更改大于号小于号
public class day1017_test {
public static void paixu(int[] arr) {
//从小到大排序
for(int i =0;i<arr.length;i++) {
for(int j =i+1;j<arr.length;j++) {
if(arr[i]<arr[j]) {
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
col(arr);
}
public static void paixu_01(int[] arr) {
//从大到小排序
for(int i =0;i<arr.length;i++) {
for(int j =i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
col(arr);
}
public static void col(int[] arr) {
//数组遍历
System.out.print("[ ");
for(int i=0;i<arr.length;i++) {
if(i<arr.length-1) {
System.out.print(arr[i]+",");
}else {
System.out.print(arr[i]+" ] ");
}
}
}
public static void main(String[] args) {
//主函数
int[] arr = new int[] {1,8,10,6,3,9,2,5,4,7};
col(arr);
System.out.println("\n从小到大排序");
paixu(arr);
System.out.println("\n从大到小排序");
paixu_01(arr);
}
}