{"id":332,"date":"2016-08-27T11:41:33","date_gmt":"2016-08-27T03:41:33","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=332"},"modified":"2017-08-11T13:32:30","modified_gmt":"2017-08-11T05:32:30","slug":"algorithm_quicksort_mid","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/algorithm_quicksort_mid\/","title":{"rendered":"\u6392\u5e8f\u7b97\u6cd5-\u5feb\u901f\u6392\u5e8f(\u4e09\u8005\u53d6\u4e2d\u5212\u5206)"},"content":{"rendered":"<p>\u6392\u5e8f\u7b97\u6cd5-\u5feb\u901f\u6392\u5e8f(\u4e09\u8005\u53d6\u4e2d\u5283\u5206)<\/p>\n<p>\u5feb\u901f\u6392\u5e8f\u7b97\u6cd5\u7684\u4e00\u500b\u6539\u9032\u7248\u672c,\u5728\u6578\u7d44\u53d6\u4e09\u500b\u5143\u7d20\u7684\u4e2d\u9593\u9032\u884c\u5283\u5206.\u9019\u6a23\u53ef\u4ee5\u907f\u514d\u51fa\u73fe\u6700\u58de\u7684\u60c5\u6cc1.<\/p>\n<p>\u53d6\u6578\u7d44\u7684\u5de6\u908a,\u4e2d\u9593,\u53f3\u908a\u7684\u5143\u7d20.\u5c0d\u9019\u4e09\u500b\u6578\u9032\u884c\u6392\u5e8f.<\/p>\n<p>#define less(A,B)\u00a0\u00a0\u00a0\u00a0 ((A)&lt;(B)) \/\/ \u5c0f\u65bc\u6bd4\u8f03<\/p>\n<p>#define exch(A,B)\u00a0\u00a0\u00a0\u00a0 {int temp=A; A=B; B=temp;} \/\/ \u4ea4\u63db<\/p>\n<p>#define compexch(A,B) if(less(A,B)) exch(A,B) \/\/ \u5c0f\u65bc\u5247\u4ea4\u63db<\/p>\n<p>\u4e0b\u9762\u7d66\u51faC\u4ee3\u78bc\u7684\u5be6\u73fe.<\/p>\n<p>\/\/ \u5283\u5206\u7b97\u6cd5<\/p>\n<p>\/\/a:\u6578\u7d44<\/p>\n<p>\/\/l:\u6578\u7d44\u7684\u5de6\u5247\u7d22\u5f15<\/p>\n<p>\/\/r:\u6578\u7d44\u7684\u53f3\u5247\u7d22\u5f15<\/p>\n<p>void quicksort(int a[],int l,int r)<\/p>\n<p>{<\/p>\n<p>int i;<\/p>\n<p>int temp;<\/p>\n<p>\/\/ a[(l+r)\/2] \u8207 a[r-1]\u4ea4\u63db<\/p>\n<p>exch(a[(l+r)\/2], a[r-1]);<\/p>\n<p>\/\/ \u53d6\u6578\u7d44\u7684\u5de6\u908a,\u4e2d\u9593,\u53f3\u908a\u7684\u5143\u7d20.\u5c0d\u9019\u4e09\u500b\u6578\u9032\u884c\u6392\u5e8f.<\/p>\n<p>\/\/ \u5c0f\u65bc\u5247\u4ea4\u63db<\/p>\n<p>compexch(a[r-1],a[l]);<\/p>\n<p>compexch(a[r],\u00a0 a[l]);<\/p>\n<p>compexch(a[r],\u00a0 a[r-1]);<\/p>\n<p>i = partition(a,l+1,r-1);<\/p>\n<p>quicksort(a[],l,\u00a0 i-1);<\/p>\n<p>quicksort(a[],i+1,r);<\/p>\n<p>}<\/p>\n<p>\/\/ \u5283\u5206\u7b97\u6cd5<\/p>\n<p>\/\/a:\u6578\u7d44<\/p>\n<p>\/\/l:\u6578\u7d44\u7684\u5de6\u5247\u7d22\u5f15<\/p>\n<p>\/\/r:\u6578\u7d44\u7684\u53f3\u5247\u7d22\u5f15<\/p>\n<p>int partition(int a[],int l,int r)<\/p>\n<p>{<\/p>\n<p>int i,j,v,t;<\/p>\n<p>i = l;<\/p>\n<p>j = r;<\/p>\n<p>v = a[j];\/\/\u9078\u5247\u6700\u53f3\u5247\u7684\u5143\u7d20\u4f5c\u70ba\u5283\u5206\u5143\u7d20v<\/p>\n<p>while(true)<\/p>\n<p>{<\/p>\n<p>while(a[i]&lt;v)<\/p>\n<p>++i;\/\/ i\u7684\u5de6\u5247\u5c0f\u8207v<\/p>\n<p>while(v&lt;a[j])<\/p>\n<p>{<\/p>\n<p>++j;\/\/ j\u7684\u53f3\u5247\u5927\u8207v<\/p>\n<p>if(j==l)<\/p>\n<p>break;\/\/ \u8df3\u51fa<\/p>\n<p>}<\/p>\n<p>if(i&gt;=j)<\/p>\n<p>break;\/\/ \u5169\u500b\u6307\u91dd\u76f8\u9047\u8df3\u51fa\u6383\u63cf.<\/p>\n<p>\/\/ \u4ea4\u63dbi,j,\u4ea4\u63db\u90a3\u4e9b\u4f7f\u6383\u63cf\u505c\u6b62\u7684\u5143\u7d20.<\/p>\n<p>t=a[i];<\/p>\n<p>a[i]=a[j];<\/p>\n<p>a[j]=t;<\/p>\n<p>}<\/p>\n<p>\/\/ \u4ea4\u63dbi,r,\u4fdd\u8b49v\u7684\u5de6\u5247\u5c0f\u65bc\u65bc\u5b83,v\u7684\u53f3\u5247\u5927\u65bc\u5b83.<\/p>\n<p>t=a[i];<\/p>\n<p>a[i]=a[r];<\/p>\n<p>a[r]=t;<\/p>\n<p>return i;<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6392\u5e8f\u7b97\u6cd5-\u5feb\u901f\u6392\u5e8f(\u4e09\u8005\u53d6\u4e2d\u5283\u5206) \u5feb\u901f\u6392\u5e8f\u7b97\u6cd5\u7684\u4e00\u500b\u6539\u9032\u7248\u672c,\u5728\u6578\u7d44\u53d6\u4e09\u500b\u5143\u7d20\u7684\u4e2d\u9593\u9032\u884c\u5283\u5206.\u9019\u6a23\u53ef\u4ee5\u907f\u514d\u51fa &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/algorithm_quicksort_mid\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">\u6392\u5e8f\u7b97\u6cd5-\u5feb\u901f\u6392\u5e8f(\u4e09\u8005\u53d6\u4e2d\u5212\u5206)<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-332","post","type-post","status-publish","format-standard","hentry","category-algorithm","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=332"}],"version-history":[{"count":4,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/332\/revisions"}],"predecessor-version":[{"id":2470,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/332\/revisions\/2470"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}