09/02/09 12:35
sweetema
xkè non mi funziona??????????????????
#include<iostream.h> using std::cout; using std::cin; using std::endl; int ricercaBinaria(int[],int,int,int,int); int a[10]={6,9,67,34,1,40,55,8,38}; int key; int main() { cout<<"l'array non ordinato è:\n"; for(int y=0;y<9;y++) { cout<<a[y]<<"\t"; } for(int x=1;x<9;x++) { int insert=a[x]; int moveitem=x; while((moveitem>0)&&(a[moveitem-1]>insert)) { a[moveitem]=a[moveitem-1]; moveitem--; } a[moveitem]=insert; } cout<<"\nl'array ordinato è:\n"; for(int k=0;k<9;k++) { cout<<a[k]<<"\t"; } cout<<"\ninserire l'elemento da cercare nell'array\n"; cin>>key; int element=ricercaBinaria(a,9,key,a[0],a[8]); if(element!=-1) cout<<"l'elemento si trova in posizione "<<element; else cout<<"l'elemento non è nell'array"; cout<<endl; return 0; } int ricercaBinaria(int a[],int size, int searchkey,int low,int high) { int middle; while(low<=high) { middle=((low+high)/2); if(a[middle]==searchkey) return middle; else if(searchkey<a[middle]) high=middle-1; else low=middle+1; } return -1; }
Ultima modifica effettuata da sweetema 09/02/09 12:46
aaa