Position BinarySearch( List L, ElementType X ){ if (!L) return NotFound; int left=1,right=L->Last; int mid; while (left<=right) { mid=(left+right)/2; if (L->Data[mid]==X) return mid; else if (L->Data[mid]<X) left=mid+1; else right=mid-1; } return NotFound; } ...
1 输出样例2: 0 函数实现细节: 1Position BinarySearch( List L, ElementType X ){2intLow=0,Mid,High=L->Last;3while(Low<=High){4Mid=(High+Low)/2;5if(L->Data[Mid]==X){6returnMid;7}elseif(L->Data[Mid]>X){8High=Mid-1;9}else{10Low=Mid+1;11}12}13returnNotFound;14}...
就是二分查找裸题,把程序读清楚就差不多了。 本地写的补全的裁判程序 View Code 提交的函数部分代码 View Code MILE NEVER GIVE UP!!! 分类: PTA-数据结构与算法题目集(中文) 好文要顶 关注我 收藏该文 微信分享 mile-star 粉丝- 2 关注- 17 +加关注 0 0 升级成为会员 « 上一篇: vector...
1.二分查找 二分查找类似于查字典,先翻译版,判断目标在那一半,然后再翻一半,再进行判断。缺点是要求待查表为有序表, 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则...
合并两个有序数组 1 Two Sum两数之和 法一 法二 88 Merge Sorted Array合并两个有序数组 1 Two Sum两数之和 题目 法一 第一次暴力解法代码如下,两个for循环,时间复杂度O(n2): 法二 第二次使用哈希表,时间复杂度O(1),思路和代码如下; 思路:哈希映射 题解 由于哈希查找的时间复杂度为 O(1),所以...
intlen=listLength(L); intcnt=1; if(K<=0||K>len){ returnERROR; } while(cnt!=K){ L=L->Next; cnt++; } returnL->Data; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ...
6-3 求链式表的表长 (10分) 代码语言:javascript 复制 intLength(ListL); 其中List结构定义如下: 代码语言:javascript 复制 typedef struct LNode*PtrToLNode;struct LNode{ElementType Data;PtrToLNode Next;};typedef PtrToLNode List; L是给定单链表,函数Length要返回链式表的长度。裁判测试程序样例:...
6-8 求二叉树高度 (20分) 本题要求给定二叉树的高度。 函数接口定义: 代码语言:javascript 复制 intGetHeight(BinTreeBT); 其中BinTree结构定义如下: 代码语言:javascript 复制 typedef struct TNode*Position;typedef Position BinTree;struct TNode{ElementType Data;BinTree Left;BinTree Right;};...
6-8 求二叉树高度 (20分),这简洁的代码就很奶思intGetHeight(BinTreeBT){if(BT==NULL)return0;return(GetH
[PTA] 数据结构与算法题目集 6-10 二分查找 Position BinarySearch(List L, ElementType X) { int beg = 1; int end = L->Last; while (beg <= end) { int mid = (beg + end) / 2; if (L->Data[mid] == X) return mid; else if (L->Data[mid] < X) beg = mid + 1; else end...