Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
sortowanie bombelkowe
Autor Wiadomość
programista Offline
itbeta.pl fan
**

Liczba postów: 265
Dołączył: Mar 2012
Reputacja: 15
Post: #1
sortowanie bombelkowe
Kod na najprostsze na świecie sortowanie. Oczywiście ma bardzo złą złożoność obliczeniową O(n^2), ale bardzo łatwo jest je zapamiętać Smile

Jednym słowem, najłatwiejsze i najwolniejsze

Kod:
//------------------------------------------------------------------------------

#include <iostream>
#include <vector>

//------------------------------------------------------------------------------

using namespace std;

//------------------------------------------------------------------------------

template<typename T, size_t N>
vector<T> stworz_wektor(const T (&data)[N]) {
  return vector<T>(data, data + N);
}

//------------------------------------------------------------------------------

template<typename T>
void wypisz(vector<T> arr) {
  for(int i = 0; i < arr.size(); i++) {
    cout << arr[i] << ", ";
  }
  cout << endl;
}

//------------------------------------------------------------------------------

template<typename T>
void zamien_liczby(T &el1, T &el2) {
  T tmp = el1;
  el1 = el2;
  el2 = tmp;
}

//------------------------------------------------------------------------------

template<typename T>
vector<T> sortowanie_bombelkowe(vector<T> arr) {
  for(int j = 1; j < arr.size(); j++) {
    for(int i = 1; i < arr.size(); i++) {
      if(arr[i] < arr[i-1]) {
        zamien_liczby(arr[i], arr[i - 1]);
      }
    }
  }
  return arr;
}

//------------------------------------------------------------------------------

int main() {
  const int liczby[] = {12, 53, 1, 43, 7, 9, 23, 4, 23, 8};
  vector<int> bombelkowe = sortowanie_bombelkowe(stworz_wektor(liczby));
  wypisz(bombelkowe);
}

//------------------------------------------------------------------------------
08.08.2012 12:32
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
NetCase.pl Offline
Starszy użytkownik
*

Liczba postów: 140
Dołączył: Jun 2012
Reputacja: 2
Post: #2
RE: sortowanie bombelkowe
Witam,

Jak już idziemy na łatwiznę to lepiej zaimplementować selection sort'a, nie jest to algorytm skomplikowany, ma taką samą złożoność, ale w większości przypadków działa o wiele szybciej.

Pozdrawiam
08.08.2012 14:15
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
karski1 Offline
Starszy użytkownik
*

Liczba postów: 74
Dołączył: Jul 2012
Reputacja: 0
Post: #3
RE: sortowanie bombelkowe
O wiele szybciej będzie nie uzywając szablonów Wink Rekurencyjnie tez można.
_____________________________________
pit program

Forum tarnowskich studentów! Forum edukacyjne dla wszystkich. Zapraszam do pisania i aktywnego uczestnictwa! Forum dostępne jest pod tym linkiem.
(Ten post był ostatnio modyfikowany: 10.08.2012 11:29 przez karski1.)
08.08.2012 23:32
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
programista Offline
itbeta.pl fan
**

Liczba postów: 265
Dołączył: Mar 2012
Reputacja: 15
Post: #4
RE: sortowanie bombelkowe
szablony dałem, żeby można było sortować nie tylko liczby, ale wszystko co ma operatory porównania Smile
zawsze można użyć sorta z bibliotek standardowych, tak jest jeszcze szybciej i zdecydowanie wydajniej.

c++ stl sort: http://www.cplusplus.com/reference/algorithm/sort/

nie polecam używać nikomu bubble sorta do czegokolwiek właściwie, gdyż są dużo lepsze metody ;]

natomiast gdy np mamy sytuację, bez internetu, w języku w którym nie znamy bibliotek, do tego staramy się o pracę, piszemy maturę czy cokolwiek, gdzie każą nam posortować coś a my np. nie pamiętamy kodu do quick sorta, to z bani zawsze można wylecieć z tym i będzie sortować. to jest jedyne realne zastosowanie i tylko dlatego je przedstawiłem, gdyż jest banalnie łatwe do zapamiętania. 2 pętle for od 2 elementu i zamieniamy ze sobą elementy, jeśli pierwszy jest mniejszy od drugiego. Jeśli komuś łatwiej zapamiętać selection sort, to proszę bardzo ;] warto znać na pamięć przynajmniej jedną metodę, tak w razie czego.

dlatego nazwałem temat: sortowanie bombelkowe a nie najszybsza metoda sortująca. aby właśnie zaprezentować sortowanie bombelkowe Wink
(Ten post był ostatnio modyfikowany: 09.08.2012 02:22 przez programista.)
09.08.2012 02:07
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Użytkownicy przeglądający ten wątek: 1 gości
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi Wyświetleń: Ostatni post
  Sortowanie tablicy dwuwymiarowej nx3 secretservice 1 1,315 24.11.2012 19:33
Ostatni post: NetCase.pl

Skocz do:







| Programowanie | PHP | C/C++ | Java | Delphi i Pascal | Bazy Danych | Webmastering | itBeta.pl | Sprzęt oraz administracja serwerami | Certyfikaty SSL | Gotowe skrypty | Luźne tematy na temat web hostingu | Oferty | Domeny internetowe | Własna strona www | Zaprezentuj swoją stronę | Zarabianie i reklama w sieci | Inne | Forum itBeta.pl | Komputery i software | Luźne rozmowy | Kosz | Grafika | Pozycjonowanie | Download | Opinie | Web hosting | Wasze prace | Giełda | Pytania oraz prośby | Praca, pomoc w prowadzeniu serwisów | Strony WWW | Marketing & reklama | Inne | Skrypty, programy, grafika | Game Hosting | Oferty | Opinie o firmach game hostingowych | Serwery gier | Zadaj pytanie przedstawicielowi | Dział techniczny | Dział dla Firm | Zaplecze - m.in CRM, Billing | Aplikacje serwerowe | Biuro | Aplikacje web'owe | Obsługa i zarządzanie klientami | Narzędzia | Kalendarze | Chat | Webmail | VOIP | Zarządzanie projektami | Video konferencje | Portal | Analityka | Blogi | Katalogi | CMS | Sklepy internetowe | Forum | Galerie | Narzędzia dla stron | Narzędzia ogólne | Skrypty WIKI | Platforma elearningowa | Zakończone działalności | Zakończone działalności | Informacje ze świata | Tutoriale |
Pierwsza zasada forum
Reklama
Partnerzy
blog, IT blog, IT
Ostatnie wątki
DirectAdmin vs cPanel
Ostatni post: sixwishlist.com
Wczoraj 05:17
» Odpowiedzi: 30
» Wyświetleń: 6987
Wywiad z firmą zenbox.pl
Ostatni post: projektlukas
25.10.2014 20:23
» Odpowiedzi: 9
» Wyświetleń: 2228
Opinie NetDC.pl
Ostatni post: Jazyna
23.10.2014 13:55
» Odpowiedzi: 38
» Wyświetleń: 9563
Bezpieczeństwo w internec...
Ostatni post: Jazyna
23.10.2014 13:54
» Odpowiedzi: 1
» Wyświetleń: 507
WINDOWS 8.1 – Jakie robi ...
Ostatni post: Jazyna
23.10.2014 13:52
» Odpowiedzi: 15
» Wyświetleń: 1628
Linux hosting startup ser...
Ostatni post: Jazyna
23.10.2014 13:51
» Odpowiedzi: 2
» Wyświetleń: 854
Kody promocyjne - korzyst...
Ostatni post: Jazyna
23.10.2014 13:49
» Odpowiedzi: 22
» Wyświetleń: 4731
Zakładanie strony interne...
Ostatni post: Jazyna
23.10.2014 13:48
» Odpowiedzi: 2
» Wyświetleń: 1320
Najlepsze portfolio
Ostatni post: Jazyna
23.10.2014 13:46
» Odpowiedzi: 18
» Wyświetleń: 6099
SSL na 3 miesiące za darm...
Ostatni post: Jazyna
23.10.2014 13:44
» Odpowiedzi: 4
» Wyświetleń: 936