当前位置: 首页 >> 冰斌棒个人 >> 冰棒老师+选择排序算法 >> 正文

冰棒老师+选择排序算法

4个月前 (08-15)     作者:冰斌棒     分类:冰斌棒个人     阅读次数:197     评论(0)    

选择排序,即每一次循环选择一个最大或者最小的数字,并把它放在当次循环的第一位。

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在待排序的数列的最前,直到全部待排序的数据元素排完。


程序实现:

#include <iostream>
using namespace std;
int main()
{
	int i = 1,j=1,a[7]= {4,6,2,1,8,9,6};
	int min,min_num;
	
	//只需要对比个数减一次即可完成,由于数组下标从0开始,为此,只需要运行到5即可,则为 i<6,表示六次 
	for(i=0;i<6;i++){
		//每次默认将第i个下标的数字为最小值 
		min = i;
		min_num = a[min];
		for(j=i;j<7;j++){
			if(min_num>a[j]){
				min = j;//将最小的坐标赋值给min ,单独提取最小的下标是为了方便找到最小的下标后进行交换 
				min_num = a[min];//将本次循环最小的值换为第j的下标的数值 
			}
		}
		swap(a[i],a[min]);
		
		//测试代码 
		cout<<i<<" = "<<endl;
		
		for(int k=0;k<7;k++){
			cout<<a[k]<<" ";
		}
		cout<<endl;
	}
	
	
	for(i=0;i<7;i++){
		cout<<a[i]<<" ";
	}
	system("pause");
	return 0;
}



除非注明,发表在“冰斌棒博客”的文章『冰棒老师+选择排序算法』版权归冰斌棒所有。 转载请注明出处为“本文转载于『冰斌棒博客』原地址http://mybbzy.com/?id=203

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站