直接选择排序
2015-03-17 16:22
162 查看
直接选择排序和直接插入排序类似,都将数据分为有序的区域和无序的区域。所不同的是直接插入排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后(其实是将找到的最小元素与已排序序列紧邻的元素交换,从而使得已排序序列增大1)。
void Swap(int &a, int &b) { int tmp = a; a = b; b = tmp; } void SelectSort(int a[], int size) { int i; for (i = 0; i < size; ++i) { int min_index = i; int j; for (j = i + 1; j < size; ++j) if (a[j] < a[min_index]) min_index = j; Swap(a[i], a[min_index]); } }该排序算法用到了交换两个数的函数。参考这里查看面试题“不借助其他变量,交换两个数”
相关文章推荐
- 直接选择排序
- 内部排序算法:直接选择排序法
- 第16周项目1-验证算法(5)直接选择排序
- 冒泡排序-直接选择排序-直接插入排序-希尔排序-java实现
- 第16周SHH数据结构-【项目1-验证算法(5)直接选择排序 】
- 第十六周项目1-验证算法(5)直接选择排序
- 第十五周项目一(5)直接选择排序
- 第十六周 项目1 验证算法-直接选择排序
- 直接选择排序
- 第十六周项目1-(5)验证算法直接选择排序
- 第十六周项目4—直接选择排序
- 【大话数据结构&算法】直接选择排序
- 直接选择排序
- 直接选择排序
- C 直接选择排序
- 排序算法(1):冒泡、选择、直接插入排序
- 选择排序--直接选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- (第9讲)直接选择排序
- 快速排序,冒泡排序,直接选择排序的算法实现