排序算法——冒泡,插入,选择排序
冒泡排序
冒泡排序是一种简单的排序算法
实际上是每一次排序都会将最大的元素放到最后
比较相邻的元素,如果第一个比第二个大,就交换他们两个
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数
针对所有的元素重复以上的步骤
点击查看代码
int len = arr.length; for (int i = 0; i < len - 1; i++) { boolean flag = true; for (int j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; flag = false; } } if (flag) { break; } }
** 选择排序**
首先在末排序序列中找到最小元素,存放到排序序列的起始位置
再从剩余没有排序的元素再找到最小的元素,然后放到已排序序列的末尾
然后重复剩余元素
点击查看代码
int len = arr.length; for (int i = 0; i < len - 1; i++) { int minVal = i; for (int j = i + 1; j < len; j++) { if (arr[minVal] > arr[j]) { minVal = j; } } if (minVal != i) { int tmp = arr[i]; arr[i] = arr[minVal]; arr[minVal] = tmp; } }
插入排序
首先从第一个元素开始,该元素被认为是有序的
取出第一个元素,在已经排序的元素序列中从后往前进行扫描
如果该已经排好序的元素大于新元素,则将该元素移到下一位置
重复步骤,一直到找到已排序的元素小于或者等于新元素的位置
点击查看代码
for (int i = 1; i < arr.length; i++) { int val = arr[i]; int j = i; while (j > 0 && val < arr[j - 1]) { arr[j] = arr[j - 1]; j--; } arr[j] = val; }
本文作者:奕帆卷卷
本文链接:https://www.cnblogs.com/yifan0820/p/17798979.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步