看看某一语句的作用。该如何处理

看看某一语句的作用。
#include "iostream.h" 
#include "iomanip.h" 
void sort(int a[], int size); // 将数组中的元素从大到小排列 
int main() 

  int num[]={2,3,8,6,4,1,7,9}; 
  const int size= sizeof (num)/ sizeof (int); 
 sort(num,size); 
 cout <<"排列后的数组元素" <<endl; 
  for ( int i=0;i<size;i++) // 输出排列好以后的数组元素 
 { 
  cout <<setw(2) <<num[i]; 
 } 
 cout <<endl; 
  return 0; 

void sort(int a[], int size) 

 cout <<"原来的数组元素" <<endl; 
  for ( int i=0;i<size;i++) // 输出原来的数组元素 
 { 
  cout <<setw(2) <<a[i]; 
 } 
 cout <<endl; 
  for ( int j=0;j<size;j++) 
 { 
  int min=a[j],mink=j;/ /*先假设未排序的首元素是最小的数------注释都是其它阅读者读后留下的,非原书所有。*/
  for ( int k=j;k<size;k++) // 找到尚未排序的元素中最小的数 
  { 
  if (a[k]<min) 
  { 
  min=a[k]; 
  mink=k; 
  } 
  } 
  int temp=a[j]; // 交换两个元素
  a[j]=a[mink]; 
  a[mink]=temp; 
 } 


自己下面写的没加这个转换int min=a[j],mink=j;编译也没问题,
void hs(int tt[],int size)
{
  for(int f=0;f<size;f++)
  {cout<<tt[f]<<endl;}
  for(int i=0;i<size;i++)
  {
  for(int o=i;o<size;o++)
  if(tt[i]>tt[o])
  { int tmpe=tt[i];
  tt[i]=tt[o];
  tt[o]=tmpe;}
  }
} //虽好似自己的更简略,但教材的那一句起到了什么作用啊?教材应该不会加可有可无的语句吧?

------解决方案--------------------
国内教材也没什么权威的,自己做的对就好。不过这个选择排序两种写法都太麻烦。
------解决方案--------------------
你这样写if(tt[i]>tt[o])可能会交换很多次,而他是先找出最小元素下标,然后再交换,交换次数变少了