Algorytm 1 Sortowanie
Sposób I by Maciek
W wakacje udało mi się sklecić coś takiego:
#include <iostream> using namespace std; char slowo[100][20], slowo2[100][20], znak; int ile, a=0, b=0, c=1, licz[100]; int main() { cout<<"Wpisz slowa, ktore maja zostac uporzadkowane alfabetycznie.\n" <<"Ale najpierw wpisz ile wyrazow chcesz uporzadkowac: "; cin>>ile; cout<<"Teraz wpisuj slowa\n"; for (a=0; a<ile; a++) cin >> slowo[a]; for (a=0; a<ile; a++) for (c=0; c<ile; c++) if (strcmp(slowo[a], slowo[c])==1) licz[a]++; for (c=0; c<ile; c++) strcpy(slowo2[licz[c]], slowo[c]); cout << "\nPo posortowaniu slowa wystepuja w nastepujacej kolejnosci:\n"; for (a=0; a<ile; a++) cout<<slowo2[a]<<'\n'; return 0; }
Idźcie za przykładem i wrzucajcie swoje algorytmy, albo jakieś znalezione w książkach/sieci ;)
Sposób II by Seb
Input
6
dziadek wnuczek babcia wnuczka ciocia
Pierwsza linia zawiera ilość wyrazów (n), które chcemy posortować, natomiast druga n wyrazów do posortowania.
Output
babcia
ciocia
dziadek
wnuczek
wnuczka
wujek
To chyba nie wymaga komentarza.
Opis
To rozwiązanie jest oparte na istniejących już mechanizmach w standardowych bibliotekach C++, czyli krótko mówiąc - "Po co drugi raz wynajdywać koło?". Poza tym tutaj składnia jest typowa dla C++ (wsparcie obiektów), natomiast powyżej pokazywana jest raczej koncepcja z C. Wydaje mi się, że to rozwiązanie jest bardziej "naturalne" i estetyczniejsze. A poza tym nie ma limitów długości i ilości wyrazów do posortowania (oczywiście w granicach dostępnej pamięci na danym sprzęcie), które występują w powyższej wersji.
Source
#include <vector> #include <algorithm> #include <string> #include <iostream> using namespace std; int main(void) { unsigned long n; cin >> n; vector<string> texts(n); vector<string>::iterator p_start, p_end; p_start = texts.begin(); p_end = texts.end(); for(unsigned long i = 0; (p_start+i) != p_end; i++) cin >> *(p_start+i); sort(p_start, p_end); for(unsigned long i = 0; (p_start+i) != p_end; i++) cout << *(p_start+i) << endl; return false; }
page revision: 4, last edited: 21 Sep 2007 11:12