选择排序和冒泡排序
来源:互联网 发布:建设项目经济评价软件 编辑:程序博客网 时间:2024/06/05 10:25
之前看算法书的时候对冒泡排序和选择排序有点混淆,它们都是使用双层循环,都存在数据交换.
在阳光明媚的一天,我高高兴兴的打开了我的<<算法图解>>,突然发现选择排序和冒泡排序是
什么鬼,怎么看着都一样,可能是我太久没有用了吧.于是在同学(机油)的怂恿之下,我决定开启我的
博客生活>>>>>>
废话有点多哦,反正是给别人看的,下面我就贴出代码,好好的温习一遍.
①选择排序
for (int i = 0; i < arr.length-1; i++) { // i 循环的次数:length-1, 举个栗子: 3,2,1 进行选择排序: 第一次内层循环结束的结果是: 1,3,2 第二次内层循环结束时结果是: 1,2,3 此时就已经得出正确的排序结果, 无需再进行第三次的内层循环 for (int j = i; j < arr.length; j++) { // 内层循环从i 开始进行比较, 因为 i 之前的元素已经完成了排序if(arr[i] > arr[j]){ // 此处是选择排序和冒泡排序的核心区别(我是这么认为的-->或者说是我瞎掰的) //整个if语句块是为了找出需要排序的元素中的最小值,并进行交换int temp = arr[j];arr[j] = arr[i];arr[i] = temp;}}}
②冒泡排序
for(int i = 0 ; i < arr.length-1 ; i++){ // 此处和选择排序中的栗子原理相同 for(int j = 0 ; j < arr.length-1-i ; j++){ // -1是防止索引越界(因为内层循环中的if语句块中存在 arr[j+1]) -i是为了提高效率 if(arr[j] >= arr[j+1]){ // 相邻两个元素之间进行比较 ( 此处是选择排序和冒泡排序的核心区别 ) //if 语句块每次比较的是相邻的两个元素之间的比较,并进行交换 int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
折腾了这么久,我觉得我已经饿了, 将就着看吧. 要是有错误或者建议大家可以踊跃提出,反正我不会接受的.
阅读全文
0 0
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序 和 选择排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 冒泡排序和选择排序
- android studio 常见问题
- Codeforces894B-Ralph And His Magic Field
- Qt添加资源
- matlab函数汇总
- 【机器学习】数据离散化
- 选择排序和冒泡排序
- 欢迎使用CSDN-markdown编辑器
- 初次运行 Git 前的配置
- 8460
- 平衡树:treap学习笔记(3)
- 如何改变企业高管的数字转型理念
- 经典面试问题引发的一些想法
- MapReduce 与函数式编程
- 机器学习阶梯下降多类问题解析及编码