冒泡排序、选择排序
private static int[] intNumber = new int[] { 25, 48, 2, 95, 88,77 };
public static void main(String[] args) {
bubbleSort();//冒泡排序
selectSort();//选择排序
}
// 冒泡排序
private static void bubbleSort() {
for (int i = 0; i < intNumber.length; i++) {// 外层为总体循环的次数
for (int j = 0; j < intNumber.length - 1; j++) {// 内层为,每个数与自身相邻的数相比较,除了最后一个数
if (intNumber[j] > intNumber[j + 1]) {// 判断相邻的数谁大
int item = intNumber[j];// 临时存储相对大的一个数
intNumber[j] = intNumber[j + 1];// 将比较小的数置换去前面
intNumber[j + 1] = item;// 将比较大的数置换到后面
}
}
}
System.out.println("升序的结果为:");
for (int i : intNumber) {
System.out.print(i + "\t");
}
// 同理得降序为:
for (int i = 0; i < intNumber.length; i++) {
for (int j = 0; j < intNumber.length - 1; j++) {
if (intNumber[j] < intNumber[j + 1]) {
int item = intNumber[j];
intNumber[j] = intNumber[j + 1];
intNumber[j + 1] = item;
}
}
}
System.out.println("降序的结果为:");
for (int i : intNumber) {
System.out.print(i + "\t");
}
选择排序
/*
* 选择排序 寻找一组值中最小的那个值,将其互换位置 重复查找替换直到最后一个值
*/
private static void selectSort() {
System.out.println("选择排序");
int numberMin, temp;// 用于记录数组中最小的数的下标以及临时存储值的变量
for (int i = 0; i < intNumber.length - 1; i++) {
numberMin = i;
for (int j = i + 1; j < intNumber.length; j++) {
if (intNumber[j] < intNumber[numberMin]) {
numberMin = j;
}
}
if (numberMin != i) {//提高运行效率:当下标为自身时不需要置换
temp = intNumber[numberMin];
intNumber[numberMin] = intNumber[i];
intNumber[i] = temp;
}
}
System.out.println("结果为:");
//遍历数组
for (int item : intNumber) {
System.out.print(item + "\t");
}
}
}