排序法值选择排序(C语言实现)

排序法值选择排序(C语言实现)

      今天我们来说一下排序法,排序法有分好多种,有比较排序,又有非比较排序。今天我们来说一下比较排序中的选择排序。

什么是选择排序?

         所谓选择,以升序排序为例,就是将一组数据种最小的选择出来,放到这组数据的最前面,然后再从剩余的数据中在选择一个最小的(全部次小的),选择出来,放到这组数据第二个位置。以此类推,直到排序完成。这也就是选择排序的算法。

具体代码实现


//  SelectSort.cpp    
//  排序法之选择排序    
//  Created by Scarborough_Coral on 2017/3/8.    
//  Copyright © 2017年 Scarborough_Coral. All rights reserved.    
//   
#include <cstdio>

int main()
{
	int a[5] = { 3,6,7,11,25 },temp;
	//选择排序具体实现循环
	for (int i = 0; i < 4; i++)
	{
		int k=i;
		for (int j = i + 1; j < 5; j++)
		{
                        //找到最小的元素下标并记录下来
			if (a[k] > a[j])
			{
				k=j;
			}
		}
                //将相应元素交换
                temp=a[k];
                a[k]=a[i];
                a[i]=temp;
	}
	//打印输出排序后的数据
	for (int i = 0; i < 5; i++)
	{
		printf("%d ", a[i]);
	}
		
}


解释:

  外层循环n-1次,n为数据个数,内层循环从未选择的元素头开始找,一直到到最大(或最小的元素),如果找到,则与相应位置交换处理。


今天的博客文章就到这里了,请多多支持,谢谢关注。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值