Bubblesort in Quellcode mit quicksort einfügen



  • Moin ich soll den bubblesort Code (wikipedia)

    bubbleSort3(Array A)
      n = A.size
      do{
        newn = 1
        for (i=0; i<n-1; ++i){
          if (A[i] > A[i+1]){
            A.swap(i, i+1)
            newn = i+1
          } // ende if
        } // ende for
        n = newn
      } while (n > 1)
    

    so umschreiben dass er genauso arbeitet wie dieser quicksort (auch mit mit vector iV)

    #include<iostream>
    #include<vector>
    using namespace std;
    
    template<class T>
    void tausche(T &a, T &b)
    {
    	const T temp = a;
    	a = b;
    	b = temp;
    }
    
    template<class T>
    int kleiner(const T& a, const T& b)
    {	
    	return (a < b);
    }
    
    template<class T>
    void drucke(const vector<T>& V)
    {
    	for (size_t i = 0; i < V.size(); ++i)
    		cout << V[i] << " ";
    	cout << endl;
    }
    
    template<class T>
    void quicksort(vector<T>& a, int links, int rechts)
    {
    	int li = links; int re = rechts;
    	T el = a[(links + rechts) / 2];
    	do {
    		while (kleiner(a[li], el)) ++li;
    		while (kleiner(el, a[re])) --re;
    		if (li < re) tausche(a[li], a[re]);
    		if (li <= re) { ++li; --re; }
    	} while (li <= re);
    
    	if (links < re) quicksort(a, links, re);
    	if (li < rechts) quicksort(a, li, rechts);
    }
    
    int main() {
    	vector<int> iV(10);
    	iV = { 100,22,-3,44,6,-9,-2,1,8,9 };	
    
    	quicksort(iV, 0, iV.size() - 1);	
    	drucke(iV);
    	}
    

    mein größtes Problem ist das ändern von array zum vector


  • Mod

    Wo ist das Problem? Arrays und Vectoren verhalten sich unter diesen Bedingungen exakt gleich, haben sogar die exakt gleiche Syntax. Das heißt, wenn du den Code für ein Array hättest, dann müsstest du bloß den Datentyp zu Vector ändern und du wärst sofort fertig. Ein Vector ist schließlich ein Array mit Extras; alles was ein Array kann, kann der Vector genau so.

    Kann es sein, dass dein wahres Problem ist, dass der Code auf Wikipedia kein C++ sondern Pseudocode ist? Könntest du den Code von Wikipedia für ein C++-Array umsetzen?



  • ja dann so...
    ich bon einfach zu blöd für den kramm


  • Mod

    gregmaster schrieb:

    ja dann so...
    ich bon einfach zu blöd für den kramm

    😕 Bestehen nun noch Fragen? Wenn du deine Probleme nicht beschreibst, kann dir auch niemand helfen.


Anmelden zum Antworten