织梦CMS - 轻松建站从此开始!

罗索

归并排序

落鹤生 发布于 2010-04-22 21:53 点击:次 
#pragma warning (disable:4786) #include iostream #include vector #include string using namespace std; template typename T void merge(vectorT v, int first, int mid, int last) { vectorT tempVector; int indexA, indexB, indexV; indexA = first; indexB =
TAG:

 

  1. #pragma warning (disable:4786) 
  2. #include <iostream> 
  3. #include <vector> 
  4. #include <string> 
  5. using namespace std; 
  6. template <typename T> 
  7. void merge(vector<T>& v, int first, int mid, int last) 
  8. vector<T> tempVector; 
  9. int indexA, indexB, indexV; 
  10. indexA = first; 
  11. indexB = mid; 
  12.  
  13. while (indexA<mid && indexB<last) 
  14.    if (v[indexA] < v[indexB]) 
  15.    { 
  16.     tempVector.push_back(v[indexA]); 
  17.     indexA++; 
  18.    } 
  19. <else 
  20.    { 
  21.     tempVector.push_back(v[indexB]); 
  22.     indexB++; 
  23.    } 
  24.  
  25. while (indexA < mid) 
  26.    tempVector.push_back(v[indexA]); 
  27.    indexA++; 
  28. while (indexB < last) 
  29.    tempVector.push_back(v[indexB]); 
  30.    indexB++; 
  31.  
  32. indexA = first; 
  33. for (indexV=0; indexV<tempVector.size(); indexV++) 
  34.    v[indexA] = tempVector[indexV]; 
  35.    indexA++; 
  36. template <typename T> 
  37. void mergeSort(vector<T>& v, int first, int last) 
  38. if (first + 1 <last) 
  39.    int midpt = (last+first)/2; 
  40.  
  41.    mergeSort(v, first, midpt); 
  42.    mergeSort(v, midpt, last); 
  43.    merge(v, first, midpt, last); 
  44. int main() 
  45. int intList[] = {25, 10, 7, 19, 3, 48, 12, 17, 56, 30, 21}; 
  46. string strList[] = {"Dallas""Akron""Wausau""Phoenix""Fairbanks""Miami"}; 
  47. vector<int> vIntList(intList, intList+11); 
  48. vector<string> vStrList(strList, strList+6); 
  49.  
  50. mergeSort(vIntList, 0, vIntList.size()); 
  51. cout<< "Sorted integers: "
  52. int i; 
  53. for (i=0; i<vIntList.size(); i++) 
  54.    cout<<vIntList[i]<<" "
  55. cout<<endl; 
  56. mergeSort(vStrList, 0, vStrList.size()); 
  57. cout<< "Sorted strings: "
  58. for (i=0; i<vStrList.size(); i++) 
  59.    cout<<vStrList[i]<<" "
  60. cout<<endl; 
  61. return 0; 

 

(linzhangkun)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201004/9228.html]
本文出处:百度博客 作者:linzhangkun
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容