本文章讲解用JAVA编写排序程序
1.冒泡排序:
思想:相邻元素做比较,大的往后靠。每遍历一次,就会找到一个最大的数。有n个元素,只需要遍历n-1次。
package books;
public class BubbleSort {
public static void main(String[] args) {
int[] a = {30, 1, -9, 70, 25};
//遍历次数
for (int i = 1; i <= a.length - 1; i++) {
//查找:已经找到i个最大数,只需要在剩下的a.length-i中找a.length-i-1次
for (int j = 0; j < a.length - i - 1; j++) {
//交换
if (a[j] > a[j + 1]) {
int tem = a[j];
a[j] = a[j + 1];
a[j+1]=tem;
}
}
}
for (int i : a) {
System.out.print(i+" ");
}
}
}
2.选择排序
思想:分为已排序区间和未排序期间,每次在未排序期间中选择最小的数,与当前第一个数进行交换。
有n个元素,每遍历一次都能找到一个最小数,只需要遍历n-1次,
遍历了i次,就有i个最小数产生,每次从下表为i开始(实际数组中的第i+1个元素),
package books;
public class SelectSort {
public static void main(String[] args) {
//我自己写了一个方法生成数组
int[] a = AArray.a();
//次数
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
int tem = a[i];
a[i] = a[j];
a[j] = tem;
}
}
}
for (int i : a) {
System.out.print(i+" ");
}
}
}
3.快速排序:之后再更新