选择排序SelectSort
2015-08-13 22:26
211 查看
选择排序同样比较简单。
选择排序原理:
选择排序由多次迭代构成。
每次迭代都从当前序列中选出最小值元素,然后与序列头元素交换,最终头元素即序列最小值。
迭代中下一次迭代的序列由当前迭代中序列(N个元素)的后N-1个元素组成。也即是说当前迭代结束后,去除序列头元素即是下次迭代的序列。
选择排序原理:
选择排序由多次迭代构成。
每次迭代都从当前序列中选出最小值元素,然后与序列头元素交换,最终头元素即序列最小值。
迭代中下一次迭代的序列由当前迭代中序列(N个元素)的后N-1个元素组成。也即是说当前迭代结束后,去除序列头元素即是下次迭代的序列。
void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } void SelectSort(int* pData, int num) { // i表示每次迭代的开始元素下标 for (int i = 0; i < num; ++i) { // minIdx表示每次迭代的最小元素下标 int minIdx = i; for (int j = i + 1; j < num; ++j) { if (pData[j] < pData[minIdx]) minIdx = j; } // 将每次迭代的最小值换到序列头部 Swap(pData[i], pData[minIdx]); } }
相关文章推荐
- 创建表空间
- -[UIViewController _loadViewFromNibNamed:bundle
- iOS开发-Objc arrayWithCapacity: 深入分析
- 颜色直方图实现彩色图象分割
- HDU 4260(The End of The World-Hanoi塔从中间状态移动)
- coderforce 560 B
- Remove Duplicates from Sorted List
- linux内核定时器
- 新手笔记之print(?)
- cocoaPod使用教程
- 微信公众帐号开发教程
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- EL表达式
- android:CheckBox方法
- ggplot2——坐标系篇
- URAL 1780 G - Gray Code 找规律
- [leetcode] Delete Node in a Linked List 删除链表中的一个结点
- spoj1182 Sorted bit squence
- MySQL-- 每半月一个分区,自动维护
- KMP hihoCoder1015 KMP算法