下标注意【算法】冒泡排序与选择排序的递归实现
2013-05-19 20:35
211 查看
发一下牢骚和主题无关:
1 冒泡排序
2 选择排序
每日一道理
水仙亭亭玉立,兰花典雅幽香,牡丹雍容华贵,梨花洁白无暇……美丽的花朵总能得到世人的羡慕与赞叹,殊不知,它从一粒小小的种子到最后开花,要历经无数的艰辛与坎坷!我们的成长也是如此。只有做辛勤的“织梦者”,我们的梦想才会成真!
文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”
1 冒泡排序
1 冒泡排序: void bubbleSort(int *data,int start,int end) { if (start < end) { int temp = 0; int length = end - start + 1; for (int i = start; i < length - 1; i ++) { if (data[i] < data[i + 1]) { temp = data[i]; data[i] = data[i + 1]; data[i + 1] = temp; } } end --; bubbleSort(data,start,end); } } 注意问题:end--那里,注意每次递归的肇端终止下标的移动,肇端下标稳定,终止下标每次减1, 循环结束条件 为start == end,以及i < length - 1;
2 选择排序
每日一道理
水仙亭亭玉立,兰花典雅幽香,牡丹雍容华贵,梨花洁白无暇……美丽的花朵总能得到世人的羡慕与赞叹,殊不知,它从一粒小小的种子到最后开花,要历经无数的艰辛与坎坷!我们的成长也是如此。只有做辛勤的“织梦者”,我们的梦想才会成真!
void selectionSort(int *data,int start,int end) { if (start < end) { //int length = end - start + 1; int temp = data[start]; int index = start; for (int i = start + 1; i < end + 1; i ++) { if (data[index] > data[i]) { index = i; } } for (int i = 0; i < 10; i ++) { printf("%d ",data[i]); } printf("\n"); if (start != index) { temp = data[start]; data[start] = data[index]; data[index] = temp; } start ++; selectionSort(data, start, end); } } 注意问题:start ++那里,注意每次递归的肇端终止下标的移动,肇端每次加1,终止下标稳定, 循环结束条件 为start == end,以及i < end + 1
文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”
相关文章推荐
- 【算法】冒泡排序与选择排序的递归实现
- 冒泡排序、选择排序、插入排序 算法实现
- 快速排序,冒泡排序,直接选择排序的算法实现
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 内部排序冒泡排序、插入排序、选择排序、快速排序的算法和PHP实现
- 算法系列(二)冒泡排序、选择排序、插入排序和希尔排序(Java实现)
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 插入排序,选择排序,递归排序和冒泡排序的实现
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 笔试算法题(56):快速排序实现之非递归实现,最小k值选择(non-recursive version, Minimal Kth Selection of Quick Sort)
- 算法 -- iOS开发用Objective_C / Swift3.0实现:快速排序 / 冒泡排序 / 选择排序
- 图解算法练习--选择排序(PHP实现)