数组简单的排序,写了点代码,实现了数组的正序和倒叙排列,提取了一些公共的方法。
如果有不妥和可优化之处,望留言讨论。
话不多说,直接上代码。
public class MaoPaoSort {
public static void main(String[] args) {
int[] array = new int[] { 8, -9, 52, 10, 21, 54, 21, 26, 32, 2, 12, 31, 5 };
printArray(array);
sortByType(array, "asc");
printArray(array);
sortByType(array, "desc");
printArray(array);
}
/**
* 对数组按照type进行排序
* @param array
* @param type
*/
private static void sortByType(int[] array, String type) {
int length = array.length;
if ("desc".equals(type)) {
for (int i = 0; i < length; i++) {
// 如果这里没有最后 -i 则每次都需要多遍历
for (int j = 0; j < length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
} else if ("asc".equals(type)) {
for (int i = 0; i < length; i++) {
// 如果这里没有最后 -i 则每次都需要多遍历
for (int j = 0; j < length - 1 - i; j++) {
if (array[j] < array[j + 1]) {
swap(array, j, j + 1);
}
}
}
} else {
System.out.println("请输入正确的排序方式!!!");
}
}
/**
* 对数组中第i个数和第j个数进行对调
* @param array
* @param i
* @param j
*/
private static void swap(int[] array, int i, int j) {
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
/**
* 打印数组
* @param array
*/
private static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + " ");
}
System.out.println();
}
}
打印效果如图:
划重点:
java.util.Arrays这个类给我们提供了sort方法,可以直接进行冒泡排序,从小到大。
使用方法:Arrays.sort(array);上面的代码可以用这一行来搞定!!!