voulaji Δημοσ. 22 Ιανουαρίου 2008 Δημοσ. 22 Ιανουαρίου 2008 int f (const int a [ ], const unsigned int length) { int result = 1; for (unsigned int i = 0; i < length; ++i ) if (a[i+1] < a ) result = 0; if (result == 1) return 1; else return 0; }
Γηρυόνης Δημοσ. 22 Ιανουαρίου 2008 Δημοσ. 22 Ιανουαρίου 2008 int f (const int a [ ], const unsigned int length){ int result = 1; for (unsigned int i = 0; i < length; ++i ) if (a[i+1] < a ) result = 0; if (result == 1) return 1; else return 0; } Και η ερώτηση είναι;
bokarinho Δημοσ. 22 Ιανουαρίου 2008 Δημοσ. 22 Ιανουαρίου 2008 To παρακάτω πρόγραμμα ταξινομεί ένα δυναμικό πίνακα που ορίζει ο χρήστης στην main() με την μέθοδο selection sort σε C++ χωρίς την χρήση της STL(χαζομάρα). Έχουν υλοποιηθεί και άλλα καλά μέσα στην κλάση του πίνακα που με την χρήση των overloaded operators μπορούμε να κάνουμε πολλά καλά όπως η σύγκριση 2 πινάκων με τον τελεστή (== ή τον !=). Για ρίξε μια ματιά, αύριο θα βρέξει πάντως.. > //--------------------------------------------------------------------------- #include <iostream> #include <cstdlib> using namespace std; //--------------------------------------------------------------------------- /* Class. */ class Array { /* Overload input-output operators. */ friend ostream& operator<<(ostream& ost, const Array& nA); friend istream& operator>>(istream& ist, Array& nA); public: /* Default Constructor. */ Array(int Sz = 10); /* Copy Constructor. */ Array(const Array& nA); /* Destructor. */ ~Array(); /* Assignment operator. */ const Array& operator=(const Array& nA); /* Equality Operator. */ bool operator==(const Array& nA) const; /* Inequality Operator. */ bool operator!=(const Array& nA) const; void SortArray(); int getMinIndex(int StartIndex, int EndIndex); void ElementSwap(int *x, int *y); private: int *nArray; int nArraySz; }; /* Functions. */ void Array::ElementSwap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; } Array::~Array() { delete[] nArray; nArray = NULL; } Array::Array(const int Sz) { int i; nArraySz = (Sz > 0 ? Sz : 10); nArray = new int[sz]; for(i = 0; i < nArraySz; i++) nArray[i] = 0; } const Array& Array::operator =(const Array& nA) { if(&nA != this) { int i; if(nArraySz != nA.nArraySz) { delete[] nArray; nArraySz = nA.nArraySz; nArray = new int[nArraySz]; } for(i = 0; i < nArraySz; i++) nArray[i] = nA.nArray[i]; } return *this; } Array::Array(const Array& nA) { int i; nArraySz = nA.nArraySz; nArray = new int[nArraySz]; for(i = 0; i < nArraySz; i++) nArray[i] = nA.nArray[i]; } ostream& operator<<(ostream& ostr, const Array& nA) { int i; for(i = 0; i < nA.nArraySz; i++) ostr << nA.nArray[i] << " "; ostr << endl; return ostr; } istream& operator>>(istream& istr, Array &nA) { int i = 0; cout << "Enter elements into the array: " << endl; for(i = 0; i < nA.nArraySz; i++) { cout << "Array[" << i << "]:"; istr >> nA.nArray[i]; } cout << endl; return istr; } int Array::getMinIndex(int StartIndex, int EndIndex) { int i,MinIndex = StartIndex; for(i = StartIndex+1; i <= EndIndex; i++) if(nArray[i] < nArray[MinIndex]) MinIndex = i; return MinIndex; } void Array::SortArray() { int index,EndIndex = nArraySz -1; for(index = 0; index < EndIndex; index++) ElementSwap(&nArray[index], &nArray[getMinIndex(index, EndIndex)]); } bool Array::operator ==(const Array& nA) const { if(nArraySz != nA.nArraySz) return false; else { int i; for(i = 0; i < nArraySz && nArray[i] == nA.nArray[i]; i++); if(i == nArraySz) return true; return false; } } bool Array:: operator !=(const Array& nA) const { return !(*this == nA); } /* Main Code. */ int main(int argc, char* argv[]) { /* Create An array class. */ Array *A = new Array(12); cin >> *A; cout << "Initial Array:" << endl; cout << *A; /* Sorted. */ cout << "Sorted Array:" << endl; A->SortArray(); cout << *A; /* Free Memory. */ A->~Array(); cout << "Hit enter to continue..." << endl; cin.get(); cin.get(); return 0; } //--------------------------------------------------------------------------- Τυπωμένα αποτελέσματα: Enter elements into the array: Array[0]:6 Array[1]:3 Array[2]:1 Array[3]:2 Array[4]:8 Array[5]:9 Array[6]:22 Array[7]:3 Array[8]:51 Array[9]:19 Array[10]:11 Array[11]:5 Initial Array: 6 3 1 2 8 9 22 3 51 19 11 5 Sorted Array: 1 2 3 3 5 6 8 9 11 19 22 51 Hit enter to continue...
voulaji Δημοσ. 22 Ιανουαρίου 2008 Μέλος Δημοσ. 22 Ιανουαρίου 2008 Συγνώμη αλλά εκ παραδρομής δεν έβαλα την ερώτηση. Λοιπόν, για την πιο πάνω συνάρτηση θέλω να βρω το αποτέλεσμα της εκτέλεσής της και πως μπορώ να την διαφοροποιήσω ώστε να γίνει πιο αποδοτική.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.