选择排序算法-----简单选择排序算法

选择排序算法-----简单选择排序算法

简单选择排序算法的思想:就是每次循环找出最小的数,并用temp记录最小值以及用index记录最小值的下标;

在这里插入图片描述
代码如下:

#include <stdio.h>

void  selecksort(int *a, int length) 
{
	int i,j,temp,index;
	for(i = 0; i<length; i++)
	{
		//用temp变量记录最小值,index记录最小值的下标 
		temp = a[i]; 
		index =i;
		
		for(j = i+1; j<length; j++)
		{
			if(a[j]<temp) //遇到比起始值小的数,则更新temp与index 
			{
				temp = a[j];
				index = j;
			}
		 } 
		 if(index != i) //因为index初始值为i,如果仍未i,则说明本身初始的值也是最小值 
		 {
		 	 a[index] = a[i];
		 	 a[i] = temp;
		 }
	}
}
int main()
{
	int arry[]={12,10,21,0,6,7,18,16,30,99,85,76,24,31,2,48,52,43,26,8};
	
	int length = sizeof(arry)/sizeof(int);
    printf("排序前: ");
	for(int i=0; i<length; i++)
	{
	     printf("%d  ", arry[i]);	
	}
	
    selecksort(arry, length);
	 printf("\n排序后: ");
	for(int i=0; i<length; i++)
	{
	     printf("%d  ", arry[i]);	
	}
	return 0;
}
 

程序运行如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值