选择排序

/*选择排序核心思想假设第一个值为最值,让其与元素其他值进行比较,
选取一个最值,以后每次从未排序元素选取一个最值*/




#include <stdio.h>

void F_Sort(int Array[],int Num);//排序主函数

void main()
{
	int Num2;
	int Array[10]={0};

	printf("请输入要排序的数字");

	for(Num2 = 0;Num2 < sizeof(Array)/4 - 1;Num2++)
	{
		scanf("%d",&Array[Num2]);
	}

	F_Sort(Array , sizeof(Array)/4 - 1);
}

void F_Sort(int Array[],int Num)
{
	int i,j,Mark ,Center;

	for (i = 0;i < Num;i++)
	{
		Mark=i;//假设下标为i的元素是一个最值,将i的下标赋值给MARK,用下面的for循环进行比较.

		for(j = i+1;j < Num;j++)//此for循环每次从待排序元素中选取一个最值,将其下标保存在中间变量MARK中
		{
			if(Array[j] > Array[Mark])
			{
				Mark=j;
			}
		}

		if(Mark != i)//将每次循环结束后最值得下标与i比较如果不同则交换,
		{
			Center = Array[Mark];//例如第一次循环后取得得最值下标与下标i的值0比较,不同的话交换Array[Mark]与Array[0]的值.
			Array[Mark] = Array[i];
			Array[i] = Center;
		}
	}

	for(i = 0;i < Num;i++)
	{
		printf("%d\t",Array[i]);
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值