[C++][Pitanje] Oko sortiranja brojeva

Započeo Bugi, Mart 27, 2014, 17:31:05 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Treba mi pomoc oko sortiranja brojeva od najmanjeg do najveceg, samo da znate otprilike unese se koji broj po redu treba da se nadje npr od unesenih brojeva

2
5
88
13
1
25
2

da se nadje 3. po velicini i izlaz bi bio 5 :)
RESPECT: Blaeks, Yui_Sang, Gagi, Kapetan Husein, Luksa, Slay, Denis_Lapi, Zoran(Dude)

Programski jezici koje koristim: C, C#, Visual Basic, HTML, CSS, PHP (tek ucim).


morat ces sredit malo sto se tice istih brojeva u nizu, ja nisam imo volje.
btw. kad ti vec treba pomoc onda postaj Å¡to si dosad napravio.

#include <iostream>
#include <algorithm>
#include <limits>

#define SIZE 7

int najmanjiBroj(int *niz, int size, int izborNajmanjeg) {
   int i = 0;
   while(izborNajmanjeg--) {
      i = std::distance(niz, std::min_element(niz, niz + size));
      if (izborNajmanjeg) niz[i] = std::numeric_limits<int>::max();
   }
   return niz[i];
}

int main()
{
    int niz[] = {2, 5, 88, 13, 1, 25, 6};
    int izbor;

    std::cout << "Upisite koji najmanji broj po redu zelite naci \n";
    std::cin >> izbor;
    std::cout << "\nNajmanji " << izbor << " u nizu je " << najmanjiBroj(niz,SIZE,izbor);
    return 0;
}

Inace postoji nativna sort() funkcija za to.
Aequam memento rebus in arduis servare mentem.

Al brate huseine to je ako sam dobro video to je za najmanji broj a meni treba od tih pomesanih brojeva da ispise redom 2 4 4 7 itd npr za unete 7 4 2 4 i sad ja znam ono za najmanji i najveci da odredim al treba mi sortiranje...
RESPECT: Blaeks, Yui_Sang, Gagi, Kapetan Husein, Luksa, Slay, Denis_Lapi, Zoran(Dude)

Programski jezici koje koristim: C, C#, Visual Basic, HTML, CSS, PHP (tek ucim).


Eto ti u C++, pa prevedi sebi ;)

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    int i,x,j;
    cout<<"Broj clanova niza: ";
    cin>>x;
    int niz[x];
    for(i=0;i<x;i++)
    cin>>niz[i];
    cout<<"Niz u rastucem redoslijedu: ";
    for(i=0;i<x;i++)
    for(j=i+1;j<x;j++)
    if(niz[i]>niz[j]) swap (niz[i],niz[j]);
    for(i=0;i<x;i++)
    cout<<niz[i]<<" ";
    cout<<endl<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}


omfg, pa sort() funkcija koja je nativna iz algorithm includea. npr.

int a[3];
a[0] = 5;
a[1] = 2;
a[2] = 8;
sort(a, a+2);

i onda ispis (cout).

zasto komplicirate i ne koristite nativne funkcije koje su puno bolje a i jednostavnije od vasih custom loopova itd.?
Aequam memento rebus in arduis servare mentem.

Citat: LuKsA poslato April 09, 2014, 12:26:29 POSLE PODNE
omfg, pa sort() funkcija koja je nativna iz algorithm includea. npr.

int a[3];
a[0] = 5;
a[1] = 2;
a[2] = 8;
sort(a, a+2);

i onda ispis (cout).

zasto komplicirate i ne koristite nativne funkcije koje su puno bolje a i jednostavnije od vasih custom loopova itd.?

Nativna funkcija? - Custom loopovi?
Pa jesi ikada radio ikakva složenija sortiranja, jel se razumiješ uopće u sortiranja?

Da su odgovori na ta pitanja pozitivna znao bi da su sortiranja jedna od složenijih stvari u programiranju (ne u svim slučajevima naravno), i da, sama po sebi na fakultetima slabo se obraÄ'uju konkretno pričam o fakultetu ranga FER i da algoritama koji rade sortaciju nema na bacanje ima ih nekoliko, a bubble sort je osnovni i nije custom loop kako ti to nazivaÅ¡.

Nativna funkcija koju isto nazivaš koristi jednu metodu od tih 'custom loopova' - jer ne vidim da programeri izbacuju algoritme za sortiranja kao neke druge zato i ta funkcija koju ti nazivaš nativnom ima istu strukturu kao ona koju nazivaš custom loop, samo je integrirana u include i nije nativna, nije sve kao u samp-u pa da možeš reći da je nešto nativno, ovdje je malo drugačije.
Poslednja Izmena: April 09, 2014, 16:08:47 POSLE PODNE od Slay
Kristijan Stipić

nisam osobno pregledavao taj inc, ali naravno da je napravljeno loopom, ali pokusavam reci kako da olaksate covjeku i kako da lakse radi. S for petljom ce se vise namucit nego s sort funkcijom. Ista fora ko da umjesto swap() radis rucno. :) mada swap i radi na isti princip ko sto bi se radilo rucno.

Da, radio sam slozenija sortiranja, i naravno da sam onda loopove koristio, pokusavam reci da za sortiranje manji->veci brojevi netrebas komplicirat tolko.

nisi razumio sto sam mislio s "custom loop" al nvm sad.
Aequam memento rebus in arduis servare mentem.

Znam ja i forda korisim hvala svima, skoro sve mi je jasno sem a%b sta se tu dogadja mislim dajte neki primer itd ili npr sta je a<<b
RESPECT: Blaeks, Yui_Sang, Gagi, Kapetan Husein, Luksa, Slay, Denis_Lapi, Zoran(Dude)

Programski jezici koje koristim: C, C#, Visual Basic, HTML, CSS, PHP (tek ucim).


Citat: |LZ| Bugi poslato April 10, 2014, 11:26:29 PRE PODNE
Znam ja i forda korisim hvala svima, skoro sve mi je jasno sem a%b sta se tu dogadja mislim dajte neki primer itd ili npr sta je a<<b

http://en.wikipedia.org/wiki/Modulo_operation

Vidi :)

(laicki - ostatak kod dijeljenja) 9%3 = 0 | 3%2 = 1 .. itd
Poslednja Izmena: April 10, 2014, 13:28:23 POSLE PODNE od LuKsA
Aequam memento rebus in arduis servare mentem.

Citat: |LZ| Bugi poslato April 10, 2014, 11:26:29 PRE PODNE
Znam ja i forda korisim hvala svima, skoro sve mi je jasno sem a%b sta se tu dogadja mislim dajte neki primer itd ili npr sta je a<<b

Pa to je matematički logički znak za računanje postotka (ostatka) i sl. Luksa ti je dao gore primjer...

a<<b ili a>>b ili a | b
time pomičeš bitove to je rad s memorijom, ako si ikada radio sa dinamičkom ili statičkom alokacijom memorije, pokazivačima i sl. onda znaš šta to radi... Ako ne, nemoj to raditi jer nije ni potrebno ugl. to je pomicanje bitova to sapada u veći level programiranja (high level programming) općenito programiranje koje se bavi manipuliranje memorijom je veća grana programiranja, jedan primjer gdje i zašto se radi manipulacija memorijom je recimo

imaÅ¡  2 varijabla, a = 5 i b = 45 i sada kako bi zamijenio vrijednosti varijable a i varijable b normalno bi kreirao varijablu c u koju bi prepisao recimo

a = 5;
b = 45;
c = b;
a = b;
b = c;

manipuliranjem memorije to možeš napraviti bez kreiranje 3 varijable time da hexadekadskim vrijednostima ili bitovima i pokazivačima izvadiš iz memorije točnu vrijednost jer svaka varijabla u memoriji ima svoju hexadekadsku vrijednost koju sa pokazivačima možeš čitati ili koristiti za nešto... slično je i sa pomicanjem bitova
Kristijan Stipić

Hvala vam lock :) P.S. pogledajte drugu temu hvala svima  :)
RESPECT: Blaeks, Yui_Sang, Gagi, Kapetan Husein, Luksa, Slay, Denis_Lapi, Zoran(Dude)

Programski jezici koje koristim: C, C#, Visual Basic, HTML, CSS, PHP (tek ucim).