Social Buttons

Αλγόριθμος Φυσαλίδας

Γίνονται διαδοχικές συγκρίσεις των τιμών των γειτονικών στοιχείων του πίνακα και ανάλογα με τον τρόπο της ταξινόμησης του πίνακα (δηλαδή πως είναι ταξινομημένα μέχρι στιγμής τα στοιχεία στο πίνακα) οι τιμές ανεβαίνουν ή κατεβαίνουν (αύξουσα ή φθίνουσα ταξινόμηση) και αποθηκεύονται στις νέες θέσεις.

Αρχικά συγκρίνεται η τελευταία τιμή του πίνακα με την προηγούμενη τιμή (με την προτελευταία) , αν είναι μικρότερη τότε οι τιμές ανταλλάσσονται , αν δεν είναι  τότε παραμένουν όπως έχουν.

Η διαδικασία επαναλαμβάνεται και με τα υπόλοιπα στοιχεία του πίνακα μέχρι να έχουν «περαστεί» όλα τα στοιχεία του πίνακα .


Αφού έχουν «περαστεί» όλα τα στοιχεία τερματίζεται ο αλγόριθμος και έχει ταξινομηθεί ο πίνακας.

Παράδειγμα :












Παράδειγμα 2 :

Να γραφτεί πρόγραμμα το οποίο να διαβάζει 5 ακεραίους από το πληκτρολόγιο και να τους αποθηκεύει σε έναν πίνακα. Να καλεί μια συνάρτηση τύπου void και να δέχεται σαν ορίσματα το πίνακα και το μήκος του. Η συνάρτηση να ταξινομεί τον πίνακα με τον αλγόριθμο της φυσαλίδας.

Λύση :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<stdio.h>
#inclue<stdlib.h>

void alg_fisalida ( int array[] , int num) ;

int main ( void )
{
	int i ;
	int pinakas[5];

	for(i=0;i<5;i++)
	{
		printf("Dose ari8mo :");
		scanf("%d",&pinakas[i]);
	}
	alg_fisalida(pinakas,5);
	printf("O taxinomimenos pinakas einai : \n");
	for(i=0;i<5;i++)
	{
		printf("%d\n",pinakas[i]);
	}
	system("pause");
	return 0;
}

void alg_fisalida ( int array[] , int size )
{
	int i , j , temp , flag;

	for(i=0;i<size;i++)
	{
		flag=0;
		for(j=4; j>=i; j--)
		{
			if(array[j]<array[j-1])
			{
				temp=array[j];
				array[j]=array[j-1];
				array[j-1]=temp;
				flag=1;//se periptosi pou ginei allagi na to xeroume oti egine
			}
		}
		if(flag==0)
		{
			return; //otan teleiosi thn allagi tote na termatisei to broxo
		}
	}
}//telso ths sinartisis

Copyright © 2015 Sofronas Konstantinos - Sotirios. All Rights Reserved. Designed By Sofronas