C ++程序使用二进制搜索方法查找数组的最小元素
这是一个使用线性搜索方法查找数组的最小元素的C++程序。该程序的时间复杂度为O(log(n))。
算法
Begin Construct binary search tree for the given unsorted data array. To find out the minimum element move the pointer to the leftmost child node. Print this value as minimum value among the given data. End
范例程式码
#include<iostream>
using namespace std;
struct node {
int d;
node *left;
node *right;
};
node* CreateNode(int d) {
node *newnode = new node;
newnode->d = d;
newnode->left = NULL;
newnode->right = NULL;
return newnode;
}
node* InsertIntoTree(node* root, int d) {
node *temp = CreateNode(d);
node *t = new node;
t = root;
if(root == NULL)
root = temp;
else{
while(t != NULL) {
if(t->d < d) {
if(t->right == NULL) {
//如果当前节点为NULL,则插入该节点。
t->right = temp;
break;
}
//将指针向左移动。
t = t->right;
}
else if(t->d > d) {
if(t->left == NULL) {
t->left = temp;
break;
}
t = t->left;
}
}
}
return root;
}
int main() {
int n, i, a[10]={86, 63, 95, 6, 7, 67, 52, 26, 45, 98};
node *root = new node;
root = NULL;
cout<<"\nData set:\n";
for(i = 0; i < 10; i++) {
cout<<a[i]<<" ";
root = InsertIntoTree(root, a[i]);
}
cout<<"\n\nThe minimum element of the given data set is ";
i = 0;
while(root->left != NULL) {
i++;
root = root->left;
}
cout<<root->d<<" which found at "<<i<<" 从根开始的深度。";
return 0;
}输出结果
Data set: 86 63 95 6 7 67 52 26 45 98 The minimum element of the given data set is 6 which found at 2 从根开始的深度。
热门推荐
10 给儿子生日祝福语 简短
11 2026新年祝福语简短语
12 新年祝福语简短句子
13 古风婚礼祝福语唯美简短
14 新年探亲祝福语简短精辟
15 新婚祝福语简短十六字
16 送给同桌的祝福语简短
17 节前送温暖祝福语简短
18 关于扬州的祝福语简短