选择排序法SelectionSort(int arr[],int n) .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
选择排序法SelectionSort(int arr[],int n) .doc

选择排序法SelectionSort(int arr[],int n)   template typename T   void SelectionSort(T arr[],int n)   {   int smallIndex;?? //表中最小元素的下标   int pass,j;?????? //用来扫描子表的下标   T temp;?????????? //用来交换表元素的临时变量      //pass的范围是0~n-2   for (pass=0;passn-1;pass++)   {   //从下标pass开始扫描子表   smallIndex=pass;      //j遍历整个子表arr[pass+1]到arr[n-1]   for(j=pass+1;jn;j++)      //如果找到更小的元素,则将该位置赋值给smallIndex   if(arr[j]arr[smallIndex])   smallIndex=j;      //如果smallIndex和pass不在相同的位置   //则将子表中的最小项与arr[pass]交换   if(smallIndex!=pass)   {   temp=arr[pass];   arr[pass]=arr[smallIndex];   arr[smallIndex]=temp;   }   }   }   /************************************************************************   双端选择排序算法:是上面选择排序算法的变种,可以定位每个子表中最小和最大元素   并把它们分别放在子表的开头和结尾.   ************************************************************************/   //双端选择排序算法函数deSelSort()的实现   template typename T   void deSelSort(T arr[],int n)   {   int smallIndex,largeIndex;? //表中最小及最大元素的下标   int leftPass=0,rightPass=n-1,i,j;???? //用来从表左边及右边扫描子表的下标   T temp;??????????????????????? //用于交换元素的临时变量 while (leftPass=rightPass)   {   //从左边及右边开始扫描子表   smallIndex=leftPass;   largeIndex=rightPass;      //j和i遍历整个子表arr[LeftPass]~arr[rightPass]   for (i=leftPass+1;irightPass;i++)   //如果找到更小的元素,则将该位置赋值给smallIndex   if (arr[i]arr[smallIndex])   smallIndex=i;      //如果smallIndex和leftPass不在相同的位置   //则将子表中的最小项与arr[pass]交换   if (smallIndex!=leftPass)   {   temp=arr[leftPass];   arr[leftPass]=arr[smallIndex];   arr[smallIndex]=temp;   }      for (j=rightPass-1;jleftPass;j--)   if(arr[j]arr[largeIndex])   largeIndex=j;      if(largeIndex!=rightPass)   {   temp=arr[rightPass];   arr[rightPass]=arr[largeIndex];   arr[largeIndex]=temp;   }      //从两头收缩子表   leftPass++;   rightPass--;   }   }   //自编冒泡法排序算法函数bubbleSort()的实现   template typename T   int bubbleSort(T arr[],int n)   {   bool exchanged=false; //是否发生交换   int i,j;????????????? //用于遍历子表的下标   T temp;?????????????? //用于交

文档评论(0)

gsgtshb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档