<菜鸟学算法-A排序(选择排序)>
2014-05-21 19:53
441 查看
选择排序是对冒泡排序的改进,每一趟在n-i(i=0,1,…n-2)个记录中选取关键字最小的记录作为有序序列中第i个记录.
/* ============================================================================ Name : choice_sort.c Author : braveboyny Version : Copyright : Your copyright notice Description : choice sort in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #define SWAP(a,b) (a=a+b,b=a-b,a=a-b) void choice_sort(int array[],int n) { int i,j,min; for(i=0;i<n-1;i++){ min=i; for(j=i+1;j<n;j++) if(array[min]>array[j]) /*升序排列*/ min=j; if(min!=i) SWAP(array[i],array[min]); } } int main(void) { int array[10]={8,2,3,6,5,9,4,1,0,7},i; choice_sort(array,10); for(i=0;i<10;i++) printf("%d ",array[i]); putchar('\n'); return 0; } //out:0 1 2 3 4 5 6 7 8 9
相关文章推荐
- <菜鸟学算法-A排序(分治的思想:归并排序)>
- <菜鸟学算法-A排序(冒泡排序)>
- <菜鸟学算法-A排序(分治的思想:堆排序)>
- <菜鸟学算法-A排序(shell排序)>
- <菜鸟学算法-A排序(插入排序)>
- <菜鸟学算法-A排序(计数排序)>
- <菜鸟学算法-Dijkstra求最短路径>
- <菜鸟学算法-A排序(分治的思想:快速排序)>
- <算法复习>排序之一---冒泡排序
- <算法书>子数组换位问题
- <模板><计算几何>凸包及其基本算法
- <Python><有监督>kNN--近邻分类算法
- <算法> 最长公共子序列
- <收藏> 我的算法学习之路
- <C++Primer>第四版 阅读笔记 第二部分 “容器和算法”
- <四>java数据结构与算法 插入排序
- <算法> 第一章 基础
- <11> go sort排序
- <三>java数据结构与算法 选择排序
- <算法设计技巧与分析>M.H>Alsuwaiye编著 读书心得