C++ 排序法

 教材:c++ 语言程序设计 阚道宏编著

例题 4-4 用选择法进行排序的C++ 程序

 

int temp;
	int x[10]={10,9,8,7,6,5,4,3,2,1};
	int minNO;
	for(int m=0;m<2;m++)
	{  
		minNO = m ;   //假设第m个最小
	   for(int n=m+1;n<10;n++)
	   {  //从m个的下一个开始比较 
		   if(x[minNO]>x[n])  //如果出现比第m个小的数
			   {              //那么交换这两个数
			    temp = x[m];
				x[m]  =x[n];
				x[n] =temp;
			   }
	   }
	}
	for(int y=0;y<10;y++)
      cout << x[y]<<" ";
 return 0; 

10 9 8 7 6 5 4 3 2 1

 

假设从第0个数最小 即第0个数最小

进入第二个for循环 循环执行一次之后就变成 9 10 8 7 6 5 4 3 2 1 (第1个与第0个交换)

第二次 8 10 9 7 6 5 4 3 2 1  (第2个与第0个交换)

第三次 7 10 9 8 6 …….1                   (第3个与第0个交换)

第十次 1 10 9 8 7 6 5 4 3 2 

//交换了10次

 

​

int main()
{
	int x[10]={10,9,8,7,6,5,4,3,2,1};
	
	int minNO;
	int m,n;
	for(m = 0;m<10;m++)
	{
           minNO = m; //假设元素x[m]就是最小的袁术
		   for(n = m+1;n<10;n++)//从后一个元素分别与x[minNO]进行
		   {
				if(x[n]

 

在内层的for循环中

 for(n = m+1;n<10;n++)//从后一个元素分别与x[minNO]进行
           {
                if(x[n]

           }

找到数字1 ,记录下序号9

1 9 8 7 6 5 4 3 2 10

跳出内层循环,假设第1个数字最小(从第0个开始计算)

1 2 8 7 6 5 4 3 9 10 

对比一下 外层for 循环执行一次,只进行一次交换数据,第二个程序更好。

 

 

你可能感兴趣的:(c++,c++,学习笔记)