2016蓝桥杯c-c++省赛试题及答案解析

发布时间 : 星期五 文章2016蓝桥杯c-c++省赛试题及答案解析更新完毕开始阅读

{ double

sum

=

num[0]

+

(double)num[1]

/

num[2]

+

(double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+num[7]*10+num[8]); if(sum == 10) {

ans ++; } }

void dfs(int index) {

if(index == 9) {

Solve(); return ; }

for(int i = 1 ; i < 10 ; i ++) {

if(!visit[i]) {

visit[i] = true; num[index] = i; dfs(index+1); visit[i] = false; }

} }

int main() {

dfs(0);

printf(\ return 0; }

第四题

快速排序

排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。

其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子,

以保证:其左边的元素都不大于它,其右边的元素都不小于它。

这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。

下面的代码是一种实现,请分析并填写划线部分缺少的代码。

#include

void s a[], int i, int j) { }

int partition(int a[], int p, int r) {

int i = p; int j = r + 1; int x = a[p]; while(1){

while(ix); if(i>=j) break; s); }

______________________; int t = a[i]; a[i] = a[j]; a[j] = t;

return j;

}

void quicksort(int a[], int p, int r) {

if(p

int q = partition(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); } } int main() { }

int i;

int a[] = {5,13,6,24,2,8,19,27,6,12,1,17}; int N = 12;

quicksort(a, 0, N-1);

for(i=0; i

联系合同范文客服:xxxxx#qq.com(#替换为@)