Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
帮忙看一下,是算法错了还是怎么的void quick_sort(int *x, int low, int high) { int i, j, t; if (low < high) { i = low; j = high; t = *(x+low); while (i<j) { while (i<j && *(x+j)>t) { j--; } if (i<j) { *(x+i) = *(x+j); i++; } while (i<j && *(x+i)<=t) { i++; } if (i<j) { *(x+j) = *(x+i); j--; } } *(x+i) = t; quick_sort(x,low,i-1); quick_sort(x,i+1,high); } } main() { int i, j, k = 1, r, c, n = 0, a[102][102], m[4] = {1, 102, -1, -102}; int *p[10001] ; scanf("%d%d", &r, &c); for (i = 1; i <= c; i++) a[0][i] = a[r+1][i] = 32766; for (i = 1; i <= r; i++) a[i][0] = a[i][c+1] = 32766; for (i = 1; i <= r; i++) for (j = 1; j <= c; j++) scanf("%d",p[k++] = &a[i][j]); quick_sort(p, 1, r * c); for (i = 1; i <= r * c; i++) { k = 0; for (j = 0; j < 4; j++) if (*(p[i]+m[j]) <= *p[i] && *(p[i]+m[j]) > k) k = *(p[i]+m[j]); if ((*p[i] = k + 1) > n) n = *p[i]; } printf("%d\n", n); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator