【vc++精品源码栏目提醒】:网学会员为广大网友收集整理了,二分查找与快速排序实验【精品文档-PDF】 - 励志,希望对大家有所帮助!
实验八 二分查找与快速排序实验报告 一. 设计人员相关信息 1. 年级: 2003级 03软件班 姓名: 周艳 日期: 2005年12月13日 3. os: windows.xp cpu: p42.66 硬盘:80 G 内存256M 操作平台: VC6.0 二 .程序设计相关信息 ⒈问题描述 编写一个程序对有序表即表中数据元素按关键码升序或降序排列进行二分查找对无序表实现快速排序。
1 使用数组来构造有表并输出之 2 对无序表实现快速排序 3 对有序表实现二分查找。
⒉基本要求 输入数据 a. 二分查找的有序表A为72322142384935 输出数据 a. 输出表A的快速排序的结果。
b. 按二分查找在表A中查找关键码为14和31的数据元素。
3.基本函数调用关系图 InitList_SqL 4函数功能的描述 函数名 相关参数 功能描述 Mian 无 调用相关函数建表对表进行排序对有序表查找指定的元素。
Partition Arraylowhigh 交换表中lowhigh的记录枢轴记录到位并返回其所在位 Main Partition QuickSort Search _S 置 此时在他之前后的记录均不大小于他 QuickSort Array low high 对表做快速排序 Search ArrayKeylowhighLength 在有序表中二分查找其关键字等于Key的数据元素.若找到则函数值为该元素在表中的位置否则为0 三实验报告结果分析 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆二分查找与快速排序实验☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 请输入表的长度Length 13 请输入关键字 7 23 18 46 14 29 31 52 21 42 38 49 35 快速排序的结果为: 7 14 18 21 23 29 31 35 38 42 46 49 52 查找关键字请按------------------1 退出查找请按--------------------0 要查找元素吗是按1否按0 1 请输入待查的关键字14 待查元素的位置是2 要继续查找吗是按1否按0 1 请输入待查的关键字31 待查元素的位置是7 要继续查找吗是按1否按0 1 请输入待查的关键字55 该表中无次元素 要继续查找吗是按1否按0 0 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ Press any key to continue 四.源代码 include stdio.h include malloc.h include stdlib.h typedef struct int key TNodeTable int pivotkey int pivotloc int PartitionTable Arrayint lowint high //交换表中lowhigh的记录枢轴记录到位并返回其所在位置 //此时在他之前后的记录均不大小于他 Array0 Arraylow//表中的第一个记录作枢轴记录 pivotkey Arraylow.key//枢轴记录关键字 whilelow high //从表的两端交替地向中间扫描 whilelow high Arrayhigh.key pivotkey --high Arraylow Arrayhigh//将比枢轴记录小的记录移到低端 whilelow high Arraylow.key