基本思想
反转排序,就是以相反的顺序把原来的数组的内容重新排序。比较简单,也是经常用到的。
算法示例
反转排序是对数组两边的元素进行替换,所以只需要循环数组长度的一半。如数组为【1,2,3,4,5,6,7】。
第一趟排序后:7,【2,3,4,5,6】,1。
第二趟排序后:7,6,【3,4,5】,2,1。
第三趟排序后:7,6,5,【4】,3,2,1。
实现代码:
ReverseSort.java
public class ReverseSort {
//反转排序算法的实现
public static int[] run(int[] array) {
int temp;
for (int i = 0; i < array.length/2; i++) {
temp = array[i];
array[i] = array[array.length-1-i];
array[array.length-1-i] = temp;
}
return array;
}
}
public class clent {
public static void main(String[] args) {
// TODO Auto-generated method stub
//int[] array ={1,2,3,4,5,6};
int[] array ={1,2,3,4,5,6,7};
System.out.print("排序前的数组为:\n");
printInfo(array);
//反转排序
array = ReverseSort.run(array);
System.out.print("排序后的数组为:\n");
printInfo(array);
}
private static void printInfo(int[] array) {
// TODO Auto-generated method stub
for(int k=0;k<array.length;k++){
System.out.print(" "+array[k]);
}
System.out.print("\n");
}
}
程序结果:
排序前的数组为:
1 2 3 4 5 6 7
排序后的数组为:
7 6 5 4 3 2 1