欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

算法分析之分治法學習總結(一)

系統 1618 0

算法分析之分治法學習總結(一)
一)解決問題的類型:當我們要解決一個輸入規模(n)很大的問題時,直接處理往往比較困難或者根本無法
求解,我們希望把輸入規模縮小,即分成很多份,分別解決了,并且這些小問題容易合起來從而解決整個問
題。
二)解題關鍵:
1)如何分:我們往往先把輸入分成兩個與原來相同的子問題,如果規模還太大,我們
對這些子問題再做上述處理,直到這些子問題容易解決為止.
2)合并子問題:往往分治法的難點在于分完之后怎么合并.合并策略決定了算法的優劣,合并問題根據具體問題而
定,沒有固定的方法
3)分治問題往往用到遞歸算法.
三)幾種類型的分治問題:
1)把問題分成字問題后,如果某個子問題解決了則整個問題也就解決了,無須合并.
典型事例:二分檢索問題(前提是一組按照關鍵碼排好順序對象,不妨設按升序排列)
二分檢索的解題思路是先看看中間那個數,如果這個數是要查找的,那么ok,問題解決,否則如果比key大,那么
在前一半繼續上述過程,否則在后一半繼續上述過程,直到找到或者查找失敗.
程序代碼:(設為int型數)
Java代碼
  1. void BinarySearch( int a[], int low, int high, int key)
  2. {
  3. if (low>=high) return ;
  4. int mid=(low+hight)/ 2 ;
  5. if (a[mid]==key) return mid;
  6. else if (a[mid]>key)
  7. return BinarySearch(a[],low,mid,key);
  8. else if (a[mid]<key)
  9. return BinarySearch(a[],mid,low,key);
  10. }

2)把問題分了之后,再經過合并最終解決問題.
典型事例:歸并排序問題:
這個問題就象我們在一個很長的隊,現在要按大小個排好,我們把這個隊分成兩個(如果還是太長,可以再分,
先看分成兩個的問題,這樣容易看清合并過程),我們把這兩隊分別排好,然后合成一隊,合并的過程很簡單,就
是弄一個新的隊,從那兩個個隊的排頭分別出列,比一下矮的站在第一個位置,高的在一邊等著,等另一個隊現
在的排頭出列,再比一下,矮的排在第二個位置,高的站在一邊,重復上述過程,直到有一個隊變空,然后把另一個
隊拉過來接在新隊的隊尾,這就排好了整個隊了.
歸并排序,就是把一組待排的關鍵值可比的東西,我們把他分成兩個小組,如果問題規模還不夠小,我們繼續
分,直到容易解決為止,然后把小的組排好續,然后合并成一組.
算法過程:
Java代碼
  1. void mergeSort( int a[], int low, int high)
  2. {
  3. if (low>=high)
  4. return ;
  5. int mid=(low+high)/ 2 ;
  6. mergeSort(a,low,mid);
  7. mergeSort(a,mid+ 1 ,high);
  8. merge(a,low,mid,high);
  9. }
  10. void merge( int a[], int low, int mid, int high) //合并過程
  11. {
  12. int []b= new int [high-low+ 1 ];
  13. int i=low,j=mid+ 1 ,k= 0 ;
  14. while (i<=mid&&j<=high)
  15. {
  16. if (a[i]<a[j])
  17. {
  18. b[k++]=a[i];
  19. i++;
  20. }
  21. else
  22. {
  23. b[k++]=b[j];
  24. j++;
  25. }
  26. }
  27. if (i>mid)
  28. for ( int m=j;m<=high;m++)
  29. b[k++]=a[m];
  30. else
  31. for (m=i;m=mid;m++)
  32. b[k++]=a[m];
  33. for (m=low, int n= 0 ;m<=high;m++)
  34. {
  35. a[m]=b[n++]; //排好的元素再拷貝到a中
  36. }
  37. }

算法分析之分治法學習總結(一)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 魔法骑士在线观看免费完整版高清 | 四虎影视国产884a精品亚洲 | 欧美在线一区二区三区欧美 | 欧日一级片 | 国产一级毛片夜一级毛片 | 亚洲精品无码成人A片九色播放 | 免费午夜视频 | 天天操天天添 | 高清在线不卡 | 欧美三级三级三级爽爽爽 | 人人爽视频 | 日本精品久久久久中文字幕2 | 老美AA片 | 色哟哟在线观看精品入口 | 亚洲免费一区二区 | 美女福利视频国产免费观看 | 国产成人综合一区二区三区 | 99视频在线精品 | 亚洲小视频在线播放 | 国产在线精品一区 | 天天摸天天爽视频69视频 | caoliushequ2017 | 欧美视频在线视频 | 久久99精品久久久久久琪琪 | 成人免费网视频 | 日本午夜免费无码片三汲大片 | 精品国产午夜福利在线观看 | 91精品国产91久久久久久最新 | 久久观看 | 欧美一区二区三区中文字幕 | 欧美特级限制片高清 | 久久婷婷在线 | 国产精品久久久久无码av | 国产免费黄色网址 | 欧美日韩国产一区二区三区伦 | 亚洲激情小视频 | www.ouchn.com| 综合网天天色 | 国产大片免费天天看 | 国产亚洲精品久久精品6 | 五月婷婷激情第五季 |