comparison CbC-examples/quicksort/quicksort_cbc.cbc @ 40:3367c5a7ec79

modify quicksort for benchmark.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Mon, 25 Jan 2010 16:51:28 +0900
parents 9117c3b65bc3
children
comparison
equal deleted inserted replaced
39:9117c3b65bc3 40:3367c5a7ec79
66 goto quicksort_divider_s(recvif, s, e, p, sp); 66 goto quicksort_divider_s(recvif, s, e, p, sp);
67 } 67 }
68 __code quicksort_divider_s(QS_IF *recvif, int s, int e, int p, stack sp) 68 __code quicksort_divider_s(QS_IF *recvif, int s, int e, int p, stack sp)
69 { 69 {
70 if (recvif->v[s]<p) { 70 if (recvif->v[s]<p) {
71 s++; 71 goto quicksort_divider_s(recvif, s+1, e, p, sp);
72 goto quicksort_divider_s(recvif, s, e, p, sp);
73 } else 72 } else
74 goto quicksort_divider_e(recvif, s, e, p, sp); 73 goto quicksort_divider_e(recvif, s, e, p, sp);
75 } 74 }
76 __code quicksort_divider_e(QS_IF *recvif, int s, int e, int p, stack sp) 75 __code quicksort_divider_e(QS_IF *recvif, int s, int e, int p, stack sp)
77 { 76 {
86 if (s<e) { 85 if (s<e) {
87 int tmp; 86 int tmp;
88 tmp = recvif->v[s]; 87 tmp = recvif->v[s];
89 recvif->v[s] = recvif->v[e]; 88 recvif->v[s] = recvif->v[e];
90 recvif->v[e] = tmp; 89 recvif->v[e] = tmp;
91 //s++;
92 //e--;
93 goto quicksort_divider(recvif, s+1, e-1, p, sp); 90 goto quicksort_divider(recvif, s+1, e-1, p, sp);
94 } else { 91 } else {
95 goto quicksort_treecall(recvif, s, e, sp); 92 goto quicksort_treecall(recvif, s, e, sp);
96 } 93 }
97 } 94 }