选择排序 简单实现
2013-02-25 10:00
211 查看
#include <stdio.h> void select_sort(int arr[],int len) { int i,j,min,index_of_min; /* * 遍历数据 遍历len-1次 * */ for(i = 0; i < len; i++) { /* * 每次都先将遍历区间的第一个元素默认是最小的数 * min保存最小的数,index_of_min保存最小数的位置 * 第一次遍历区间是arr[0] ~ arr[len - 1] * 第二次遍历区间是arr[1] ~ arr[len - 1] * . * . * . * 第len - 1次遍历区间是arr[len - 2] ~ arr[len - 1] * */ min = arr[i]; index_of_min = i; /* *从遍历区间的第二个数开始收索当前区间中的最小数 * */ for(j = i + 1; j < len; j++) { /* * 如果发现区间中有比一开始默认假设的最小数还小的话 * 就将此数作为最小数,先保存到min和index_of_min中 * */ if(arr[j] < min) { min = arr[j]; index_of_min = j; } } /* * 把真正的最小数放到最小数的位置上 * */ arr[index_of_min] = arr[i]; arr[i] = min; } } void show(int arr[],int len) { int i; for(i = 0; i < len; i++) printf("%d ",arr[i]); printf("\n"); } int main() { int data[] = {423,6,23,75,2,73,89,23}; int len = sizeof(data) / sizeof(data[0]); show(data,len); select_sort(data,len); show(data,len); }
相关文章推荐
- JAVA之冒泡排序与简单选择排序的实现
- java实现七种排序 (插入排序, 希尔排序, 插入排序, 快速排序, 简单选择排序, 堆排序, 归并排序)
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- Python实现冒泡,插入,选择排序简单实例
- java语言实现简单的选择排序
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- 史上最简单!冒泡、选择排序的Python实现及算法优化详解
- JAVA实现简单的冒泡排序与选择排序
- 简单选择排序的原理与实现
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- java简单实现冒泡 快速 选择排序
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 排序【7】之简单选择排序的C语言实现
- 三种简单排序的实现(冒泡排序,选择排序,插入排序 )
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 简单选择排序的Java实现、性能分析以及适用场景
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- C#实现简单的冒泡、选择排序以及二分查找法
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)