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

Algorith Theory Problem in C


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

Επισκέπτης
Δημοσ. (επεξεργασμένο)

Έχω αυτο το προβλημα:

Suppose we are given a sequence S of n elements, each of which is colored red or blue. Assuming S is represented as an array, give an in-place method for ordering S so that all the blue elements are listed before all the red elements. Can you extend your approach to three colors?

Το εχω υλοποιηση για τα 2 χρωματα:

shuffle(S[0..N-1]):

pos_red = N-1; // After this position, all the elements will always be red.

i = 0

while (i < pos_red):

// if element is red, swap it with the element pointed by pos_red

if color(A[i])='Red':

swap(A[i], A[pos_red])

// reduce the next red position by 1

pos_red = pos_red - 1

else

// proceed to next element

i = i+1

Πως θα γινοταν για 3, εχω μπερδευτεί?

Επεξ/σία από Επισκέπτης

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...