Αλγόριθμοι Ταξινόμησης (Sοrting Algorithms)

Αλγόριθμος φυσαλίδας (Bubble sort)

void bubblesort(int arr[], int Ν) {
	bool sorted;
	int temp;
	do {
		sorted = true; 
		for (int i = 0; i<N - 1; i++) { 
			if (arr[i]>arr[i + 1]) { // Αν το επόμενο στοιχείο είναι μικρότερο, τότε αντιμεταθέτουμε τα στοιχεία με τη χρήση της βοηθητικής μεταβλητής (temp)
				temp = arr[i];
				arr[i] = arr[i + 1]; 
				arr[i + 1] = temp;
				sorted = false; // Αλλαγή τιμής της μεταβλητής σημαίνει ότι ο πίνακας δεν είναι ταξινομημένος
			}
		}
	} while (sorted == false);
} //Τέλος συνάρτησης


Αλγόριθμος ταξινόμησης με εισαγωγή (Insertion sort)

void insertionSort(int arr[], int Ν) {
	int temp; // Βοηθητική μεταβλητή 
	int j; // Θέση στοιχείου 
	for (int i = 1; i<Ν; i++) {     //i=1 γιατί ξεκινούμε από το δεύτερο στοιχείο
		temp = arr[i];   // Αποθηκεύουμε το στοιχείο 
		j = i - 1;     // Ψάχνουμε στα αριστερά 
		while (j >= 0 && arr[j]>temp) {//Όσο βρίσκουμε μεγαλύτερα στοιχεία αντιγράφουμε στη θέση δεξιά και μετακινούμαστε αριστερά
			arr[j + 1] = arr[j];
			j--;
		} // Έξοδος από το while loop σημαίνει ότι φτάσαμε στην αρχή ή συναντήσαμε μικρότερο στοιχείο
	arr[j + 1] = temp; // Αντιγράφουμε το στοιχείο στη σωστή θέση, δεξιά του μικρότερου στοιχείου
	}
}