Προς το περιεχόμενο

bubble sort


xakerdo7

Προτεινόμενες αναρτήσεις

Δημοσ.

πως μπορω να φτιαξω το προγραμμα της φυσαλιδας με ενεργειες που δεν χρειαζονται???δηλ. οταν εχει γινει η ταξινομηση απο το 4ο ,5ο περασμα να σταματαει και να μην κανει την ιδια διαδικασια μεχρι το τελος.

και πως μπορω επισης να ανταλλαξω τις τιμες 2 μεταβλητων χωρις την χρησιμοποιηση τριτης,πως μπορω να αλλαξω το παρακατω δηλ.

{

int temp=b;

b=b[i+1];

b[i+1]=temp;

}

Δημοσ.

καταρχην σε τι γλωσσα προγρμματισμου χρησιμοποιεις.(αν και δε παιζει ρολο). απλα για να εχω μια εικονα.

δευτερον γιατι δεν 8ες να χρεισιμοποιησεις τριτη μεταβλητη. Αυτη η μεθοδος ειναι η βασικη μεθοδος μεταφορας. αν δεν κανω λαθος δεν παιζει αλλη. δεν καταλαβαινω για ποιο λογο μπορει να θες να σταματαει η διαδικασι πριν τελειωσει ολοτον ελεγχο. anyway με break δοκιμασες?

 

βοηθησε με λιγο και τα ξαναλεμε!

Δημοσ.
πως μπορω επισης να ανταλλαξω τις τιμες 2 μεταβλητων χωρις την χρησιμοποιηση τριτης

αν και δεν βλέπω το λόγο...

 

η 1η λύση είναι:

>
void swap(int *x,int *y){
*x ^= *y;
*y ^= *x;
*x ^= *y;
}

Δημοσ.
...και πως μπορω επισης να ανταλλαξω τις τιμες 2 μεταβλητων χωρις την χρησιμοποιηση τριτης

 

 

Γίνεται, αλλά πλην της μνήμης που δεσμεύει η temp μεταβλητή δεν έχεις κάποιο κέρδος σε αριθμό εντολών. Πάλι 3 εντολές χρειάζεσαι:

 

>a -= b;
b += a;
a = b - a;

Δημοσ.

2η λύση

>
void swap(int *x,int *y){
    *x=*x+*y;
    *y=*x-*y;
    *x=*x-*y;
}

 

---------- Το μήνυμα προστέθηκε στις 02:16 ----------

 

πως μπορω να φτιαξω το προγραμμα της φυσαλιδας με ενεργειες που δεν χρειαζονται???δηλ. οταν εχει γινει η ταξινομηση απο το 4ο ,5ο περασμα να σταματαει και να μην κανει την ιδια διαδικασια μεχρι το τελος.

μέτρα πόσες αντιμεταθέσεις έκανες. Αν ήταν 0, τελείωσες.
Δημοσ.

Πάντως άμα οι δυο μεταβλητές είναι κάτω από maxint/2 μπορείς να το λύσεις με 16 bit shifts.

 

Τέσπα το xor swap είναι το μόνο που δουλεύει κανονικά. (αλά και πάλι είναι χειρότερο από temp μεταβλητή)

 

αν π.χ το a == minint και το b == maxint έχει πρόβλημα η λύση με την αφαίρεση

Δημοσ.

Ναι η xor είναι σίγουρα σωστή αλλά και η προσθαφαίρεση δεν μου φένεται να έχει πρόβλημα. Καλή η προσθαφαίρεση, δεν το είχα σκεφτεί ποτέ.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...