查找

    技术2025-11-27  19

    查找

    //顺序查找 int seqserch(int r[],int n, int k){ r[0] = k; i = n; while(r[i] != k){ i--; } return i; } //折半查找非递归 int binSearch(int r[],int n ,int k){ low = 1; high = n; while(low<=high){ mid = (low + high)/2; if(k<r[mid]){ high = mid -1; }else if(k>r[mid]){ low = mid +1; }else{ return mid ; } } return 0; } int binsearch(int r[],int low,int high,int k){ if(low>high) return 0; else{ mid = (low +high)/2; if(k<r[mid]) return binsearch(r,low,mid-1,k); else if(k>r[mid]) return binsearch(r,mid+1,high,k); else return mid ; } } 二叉排序树的插入算法 void bisortTree::InsertBST(Binode<int>*s){ if(root==null) root = s; else if(s->date<root->data) InsertBST(root->lchild,s); else InsertBST(root->rchild,s); } 二叉排序树的构造算法 BisortTree::BiSortTree(int r[],int n){ for(i=0,i<n;i++){ s=new BiNode<int>; s->data=r[i]; s->lchild=s->rchild=NULL; InsertBST(root,s); } } BiNode *BiSortTree::SearchBST(BiNode<int> *root,int k){ if(root==NULL) return NULL; else if(root->data==k) return root; else if(k<root->data) return SearchBST(root->lchild,k); else return SearchBST(root->rchild,k) }
    Processed: 0.034, SQL: 9