erlug
[Top] [All Lists]

[Erlug] sempre io

To: erlug@xxxxxxxxxxxxxx
Subject: [Erlug] sempre io
From: "Simone Saravalli" <dragonlair@xxxxxxxxx>
Date: Mon, 8 Apr 2002 17:12:39 +0200
Scusate ancora, ma credo che avere tutto il programma possa rendere
più facile capire come funziona il mio algoritmo, così potete vedere
come ho settato le variabili ecc

#include <stdio.h>

#define MAX 20
#define true 1
#define false 0

void inserisci (int array[], int n) {
   int count;
   for (count=0; count<n; count++) {
      printf ("\nInserisci l'elemento numero %d: ", count+1);
      scanf ("%d", &array[count]);
      }
   }

void bubblesort (int array[], int n) {
   void stampa (int array[], int n);
   int scambio, count, temp, inizio=0, fine=MAX-1;
   do {
      scambio=false;
      for (count=inizio; count<fine; count++) {
         if (array[count+1]<array[count]) {
            scambio=true;
            temp=array[count+1];
            array[count+1]=array[count];
            array[count]=temp;
            }
         }
      } while (scambio);
   stampa (array, n);
   }

void binsearch (int array[], int n, int inizio, int medio, int fine, int key) {
   int pivot, ipivot;
   ipivot=medio; pivot=array[ipivot];
   if ((key>=array[inizio]) && (key<=array[fine])) {
      if (key==pivot)
         printf ("\nElemento %d trovato in array [%d]\n", key, pivot-1);
      else if (key<pivot) {
         n=n/2;
         medio=inizio+((ipivot-inizio)/2);
         fine=ipivot-1;
         binsearch (array, n, inizio, medio, fine, key);
         }
      else {
         inizio=ipivot+1;
         fine=n;
         medio=inizio+((fine-inizio)/2);
         binsearch (array, n, inizio, medio, fine, key);
         }
      }
   else
      puts ("\nValore non trovato\n");
   }

void stampa (int array[], int n) {
   int count;
   for (count=0; count<n; count++)
      printf ("%d\t", array[count]);
   }

main() {
   int array[MAX], n=MAX, inizio=0, medio=n/2, fine=MAX, key;
   inserisci (array, n);
   puts ("\n\nStampa dei valori ordinati mediante bubblesort:\n");
   bubblesort (array, n);
   printf ("\nInserisci l'elemento da cercare: ");
   scanf ("%d", &key);
   binsearch (array, n, inizio, medio, fine, key);
   return 0;
   }









<Prev in Thread] Current Thread [Next in Thread>
  • [Erlug] sempre io, Simone Saravalli <=