原创 C语言选择排序法

2009-5-19 09:36 5960 1 1 分类: MCU/ 嵌入式

选择排序算法C语言的实现




选择法排序原理:一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i(将下标给MIN,先不急着交换),这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 具体实现代码如下:


#include<stdio.h>
/****************************************
**选择排序法对十个整数进行排序        ***
****************************************/
//n为数组长度;
void sort(int a[],int n)
{
   int temp,min;
   for(int i="0";i<n;i++)
   {
     min="i";//先假设最小下标为i
     for(int j="i"+1;j<n;j++)
        if(a[j]<a[min])
           min="j";//对i之后的数进行扫描将最小的数赋予min
     if(min!=i)
     {
       temp="a";
       a=a[min];
       a[min]=temp;
     }//判断min与i是否相等,若=则说明原假设正确反之交换数值
   }
}
//用main函数验证
void main()
{
 int a[10];
 printf("please input the array a:\n");
 for(int i="0";i<10;i++)
  scanf("%d",&a);
 sort(a,10);


    for(i=0;i<10;i++)
  printf("%d\t",a);
}


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
daimingwei34_744024099 2009-07-10 10:42
串口接收和发送时序 51
串口发送和接收一个字节的具体时序说明(以51单片机为例)2009年04月03日 星期五 23:10【发送】:当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口即把SBUF中的...
daimingwei34_744024099 2009-06-19 09:21
网络上的两个C语言宏问题
请教两个c语言问题: 标签: 请教,  两个,  c语言 一.#define pr(ar) printf("%d",ar);main(){ int j,a[]={1,3,5,7,9,11,13,15}...
daimingwei34_744024099 2009-06-19 09:10
C语言中的逗号表达式
 【c】c语言中逗号运算符和逗号表达式收藏 刚开始学习C语言时,对逗号去处符和逗号表达式非常困惑,本文给了我很大的帮助。 来自:百度空间-软件工程师  C语言提供一种特殊的运算符——逗号运算符。用它将...
daimingwei34_744024099 2009-06-17 16:18
CAN波特率的简单计算
 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />CAN波特率的简单计算   其实C...
daimingwei34_744024099 2009-06-12 16:53
C51的奇偶校验
用C51实现带奇偶校验的串行通信http://www.yidaba.com 2006年05月31日 13:06 电子查询网关键字:MCS-51 单片机 MCS-51系列单片机的串行口有4种工作方式。方...
daimingwei34_744024099 2009-06-12 16:04
灌电流和拉电流
 拉电流与灌电流1、概念      拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数,这种说法一般用在数字电路中。      这里首先要说明,芯片手册中的拉...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /2 下一条