1、冒泡排序
/*
* 冒泡排序
* 外层控制循环多少趟,内层控制每一趟的循环次数
*/
public class Test08 {
public static void main(String[] args) {
int num[] = {1,9,2,8,4,7,6,5,3}; //定义一个需要排序的数组
System.out.println("排序前的数组为:");
for (int n:num) { //用增强for循环对数组进行排序
System.out.print(n+"");
}
for (int i = 1; i < num.length; i++) { //控制循环的趟数
for (int j = 1; j < num.length-1-i; j++) { //每趟循环的次数,数组长度减 i 是因为最后一个数已经比前面的数大,不需要再进行比较
if (num[j]>num[j+1]) { //当j>j+1时,将两个数交换,大的放后面,当遇到比这个还要大的,再交换,最后就一定是最大的数
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for (int n:num) {
System.out.print(n+"");
}
}
}
https://www.cnblogs.com/shen-hua/p/5422676.html
2、选择排序
/*
* 选择排序
*
*/
public class Test07 {
public static void main(String[] args) {
int[] array = {8,6,7,5,1,4,3,9,2};
System.out.println("排序前:");
for (int i : array) {
System.out.print(i+", ");
}
System.out.println();
System.out.println("排序后:");
for (int i = 0; i < array.length; i++) { //外层控制比较的第一个数,内层把包括第一个数之后的数都都遍历一遍
for (int j = i; j <array.length; j++) {
if (array[i]>array[j]) { //用第一个数与后面的数依次比较,如果后面有比第一个数还要小的数就与他进行交换
int teamp = array[i];
array[i] = array[j];
array[j] = teamp;
}
}
}
for (int i : array) {
System.out.print(i+", ");
}
}
}