MFC中简单实现选择排序

 选择排序为不稳定排序算法:

 

其中

if(Min!=num[j])   //这里必须要判断,如果缺少判断,那么当前的最小值就会与之前的最小值位置交换

{

     tmp=num[MinPos];

     num[MinPos]=num[j];

     num[j]=tmp;

}

  

{
	//20131219 Denyz
	int i;
	int num[8];
	CString Output1,szInput[8],OutputTmp;

	int k;
	int Min,MinPos,j;//j为扫描的趟数
	int tmp;//用作交换两个数值的暂存变量
	//int num[8]={9,8,7,6,5,4,3,2};
	for(i=0;i<8;i++)
		{
		GetDlgItem(1014+i)->GetWindowText(szInput[i]);
		num[i]=atoi(szInput[i]);
	    }

	
	for(j=0;j<8;j++)
	{
	  Min=num[j];
	  for(i=j;i<8;i++)//循环比较,找出剩下的元素中的最小值的位置和数值
      {
		if(Min>num[i]) 
			{
				Min=num[i];
		        MinPos=i;//记录获取到最小值的位置
		    }
      }
	  //最小值和num[j]数值交换,
	    if(Min!=num[j])//这里必须要判断,如果缺少判断,那么当前的最小值就会与之前的最小值位置交换
	    {
	     tmp=num[MinPos];
	     num[MinPos]=num[j];
	     num[j]=tmp;
	    }
    }
#ifdef FALSE
	for(i=0;i<8;i++)
		k=num[i];
#endif
	for(i=0;i<8;i++)
	{
		OutputTmp.Format("%d ",num[i]);
		Output1.Insert(i*2,OutputTmp);
	}	
		
	
	GetDlgItem(IDC_EDIT_Output1)->SetWindowText(Output1);

}


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值