常见的排序算法有十种:
三大基础排序:选择、冒泡、插入(时间复杂度:O(n^2),空间复杂度(O(1))比较低)使用的是最基本的两层嵌套结构
还有其他的排序算法:快速、归并、堆、希尔、桶、计数、基数
排序:1)升序:从小到大
2)降序:从大到小
冒泡排序法:
public class BubbleSort {
public static void main(String[] args) {
int [] arr = {1, 7, 2, 5, 9, 4, 3, 8, 6, 2, 10};
// 冒泡排序法
/**整体结构两层循环嵌套
* 外循环:完成整体排序,执行一轮;找到一个当前最大值放置在正确位置
* 内循环:执行一轮:完成一次相邻两元素的比较和交换
*/
for (int i = 0; i < arr.length - 1; i++) {
// 两两交换,把最大的数放在最后(大数沉底)
// 第一轮:i=0,length-1
// 第二轮:i=1,length-2
// 第三轮:i=2,length-3
for (int j = 0; j < arr.length - i -1; j++){
if (arr[j] < arr[j + 1]) {
// 进行交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
// 运行结果:[10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1]
}
}
其余排序算法等待更新中......