freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Γλώσσα C ~δυαδική αναζήτηση ~


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα]      Bookmarks Tags: αναζήτησηγλώσσα Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
diamadiss


Μέλος από: 16 Μαη 2008
Μηνύματα: 28

View users profile
ΜήνυμαΣτις: 09 Νοε 2008 12:06    Θέμα: Γλώσσα C ~δυαδική αναζήτηση ~ Απάντηση με παράθεση  Mark this post and the followings unread

Παιδιά γειά. Θα ήθελα μια βοήθεια σε ενα πρόγραμμα. Αυτό που θέλω να κάνω είναι το εξής :
Να γραφεί πρόγραμμα σε C που να αναζητεί με τον αλγόριθμο της δυαδικής αναζήτησης το στοιχείο 3 και το στοιχείο 14 στον ακόλουθο πίνακα Α=[1 3 4 7 10 13 22 28]. Τέλος, να εκτυπώνονται οι συγκρίσεις που έγιναν με την δυαδική αναζήτηση για να βρεθεί το στοιχείο 3 και 4 αντίστοιχα. Το εχω φτιάξει το πρόγραμμα αλλά με τον αλγόριθμο της σειριακής αναζήτησης . Μήπως μπορεί να με βοηθήσει κάποιος να ξεκολήσω? Ευχαριστώ.

Πρόγραμμα με την μέθοδο της σειριακής αναζήτησης΄

κώδικας:
#include <stdio.h>
main()
{
int A[8],i,found=0,value1=3,value2=14;
A[0]=1,A[1]=3,A[2]=4,A[3]=7,A[4]=10,A[5]=13,A[6]=22,A[7]=28;
i=0;
while((i<8)&&(found==0))
      {
         printf("~Is equal %d with %d?\n",value1,A[i]);
         if(A[i]==value1)
            found=1;
         else
            i=i+1;
      }
   if(found==1)
      printf("~The number %d found\n",value1);
   else
      printf("~The %d not found!!!\n",value1);
   found=i=0;
   printf("\n\n\n");
   while((i<8)&&(found==0))
      {
         printf("~Is equal %d with %d?\n",value2,A[i]);
         if(A[i]==value2)
            found=1;
         else
            i=i+1;
      }
   if(found==1)
      printf("\n\n\n~The number %d found\n",value2);
   else
      printf("~\n\n\nThe number %d not found!!!\n",value2);
   printf("\n\n\n");
}
   
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 09 Νοε 2008 16:07    Θέμα: Re: Γλώσσα C ~δυαδική αναζήτηση ~ Απάντηση με παράθεση  Mark this post and the followings unread

Η βέλτιστη μέθοδος της Δυαδικής Αναζήτησης (προσέγγιση divide and conquer τάξης O(lgn)) είναι πολύ απλή και βασική όσο και η σειριακή, άρα είναι πανεύκολο να μεταφέρεις την υπάρχουσα λογική σε αυτό τον αλγόριθμο. Περιγράφεται εδώ http://en.wikipedia.org/wiki/Binary_search μαζί με χρήσιμες πληροφορίες (ασυμπτωτική ανάλυση / μέσης περίπτωσης, και δείγματα κώδικα). Άρα η απάντηση βρίσκεται εκεί...
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Bitwise operators in C 3 Kappa4 15 Δεκ 2014 20:38
mariosal Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 08 Δεκ 2016 09:50 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos