电子科技大学软件技术基础 查找和排序 下载本文

内容发布更新时间 : 2024/6/27 3:31:45星期一 下面是文章的全部内容请认真阅读。

软件技术基础上机实验报告

罗子建2016010902012

上机实验五

5.1

一、 程序流程说明——有条理的文字或流程图* 二、 程序代码

#include #include #include\ #defineMAXNUM 20 typedefstruct {

int data[MAXNUM]; int length;

}list_type;

void createlist(list_type *lp) { }

int sort(list_type *list,intkey) {

int i;

for (i = 0; i length; ) {

if (list->data[i] != key) { }

i++;

int i, elem; lp->length = 0;

printf(\); for (i = 0; i

scanf_s(\, &elem); if (elem == -1) break; lp->data[i] = elem; lp->length++;

}

}

else { }

printf(\成功查找\\n\); break;

return i+1;

int binsearch(list_type *list, intkey) { }

int main() {

int m; int i;

list_type list; createlist(&list);

printf(\请输入你想顺序查找的元素值:\); scanf_s(\, &m); i=sort(&list, m);

printf(\你所查找的元素位置为:%d\,i); printf(\请输入你想二分查找的元素值:\); scanf_s(\, &m); i = binsearch(&list, m);

printf(\你所查找的元素位置为:%d\, i); while (low <= high) { }

mid = (low + high) / 2; if (keydata[mid]) { }

elseif (key>list->data[mid]) { } else { }

return mid; low = mid + 1; high = mid - 1;

int low = 0, mid, high = list->length - 1;

}

三、 测试数据

please input datas of the list 3 10 13 17 40 43 50 70 -1

请输入你想顺序查找的元素值:43 成功查找

你所查找的元素位置为:6请输入你想二分查找的元素值:5

你所查找的元素位置为:1请按任意键继续. . . 四、上机时遇到的问题(可分为编译问题和逻辑问题)

对于二分查找,我之前使用的mid 一直不能求解到最正确的位置,后来通过编译调试得到正确的答案。