排序是将多个数据依次按指定顺序进行排列的过程。
排序有两种大类:内部排序
、外部排序
内部排序
:指将需要处理的所有数据都加载到内存中进行排序操作,如
交换排序
选择排序
插入排序
外部排序
:当数据量过大,无法完全加载到内存中,需要借助外部储存进行排序,如:
合并排序
直接合并排序
冒泡排序
: 冒泡排序也是交换排序的一种,简而言之就是从头开始,每次找出 最大值/最小值
然后互换到 后面/前面
, 用图形表示就是:
了解了冒泡排序的概念,接下来就是代码的实现
// 要排序的数组 int bubbleSort[] = {99, 69, 80, 57, 13}; // 定义交换空间,替换值时使用的 int swap; // 开始循环,外层循环的作用是指定最小值, 和一个比对多少轮 for (int minIndex = 0; minIndex < bubbleSort.length - 1; minIndex++) { // 五个元素的数组 只需要循环 4 次就能完成排序 // 指定每次比对 从那里开始,如: // 第一轮比对从索引 0 开始 // 第二轮比对从索引 1 开始 ... 以此类推 // 因为前面的值已经是比对过的都比后面的值小,所以无需重复比对,浪费资源 for (int compareIndex = minIndex; compareIndex < bubbleSort.length; compareIndex++) { // 判断 最小值 是否比 比对值大 if (bubbleSort[minIndex] > bubbleSort[compareIndex]) { // 如果比比对值大『执行以下代码』,将比对值 和 当前记录的最小值互相替换 // 如果小,不做任何操作 // 开始替换,先记录当前记录的最小值到交换空间 swap = bubbleSort[minIndex]; // 将当前记录的最小值替换成比对值 bubbleSort[minIndex] = bubbleSort[compareIndex]; // 将比对值替换成 之前记录的最小值 bubbleSort[compareIndex] = swap; } } }