• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Maksymalna różnica

Object Storage Arubacloud
0 głosów
1,016 wizyt
pytanie zadane 4 listopada 2018 w C i C++ przez Szaradek Obywatel (1,340 p.)
tresc zadania: https://prnt.sc/leag8v

moj kod: http://www.wklejto.pl/655870

co zmienic, żeby zaliczyło zadanie ponieważ przekracza limit czasu

3 odpowiedzi

0 głosów
odpowiedź 4 listopada 2018 przez niezalogowany
Spróbuj poprawić sam, a nie proś o gotowe!

A oto moja podpowiedź: Spróbuj znaleźć najmniejszą i największą liczbę algorytmem Quicksort, a potem odejmij. Powinno się zmieścić w czasie, u mnie posortowanie 100 000 elementowej tablicy z liczbami losowymi zajmuje ok. 0,017s.

Powodzenia !!!
komentarz 5 listopada 2018 przez RafalS VIP (122,820 p.)
Po co sortowac zeby znalezc min i max :D i jak by to mialo przyspieszyć program?
komentarz 5 listopada 2018 przez niezalogowany

I tak musisz sprawdzić każdą liczę, a ten algorytm, chociaż pamięciożerny, to dla tablicy takich liczb jak w zadaniu posortowanie ich zajmie mu ok. 0,09s. Znacznie przyśpieszy to szybkość programu w stosunku do standardowej pętli iteracji. Przetestuj, algorytm jest np. na wikipedii, powinno się udać :) 

komentarz 5 listopada 2018 przez RafalS VIP (122,820 p.)
Twierdzisz ze sortowanie jest szybsze od pojedynczego przeiterowania po tablicy :p ?
komentarz 5 listopada 2018 przez niezalogowany
Nie, ale skoro przeiterowanie tablicy w kodzie kolegi Szaradek jest za wolne, to może ten algorytm ? Jak pisałem, może to być szybsze.
0 głosów
odpowiedź 4 listopada 2018 przez Colossus Mądrala (6,410 p.)
Spróbuj może od razu przy wczytywaniu sprawdzać czy wczytana liczba jest maksimum albo minimum
0 głosów
odpowiedź 5 listopada 2018 przez RafalS VIP (122,820 p.)
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,lmax,lmin, value;
    cin >> n;
    if(n>0){
      cin >> lmax;
      lmin = lmax;
    }
    for(int i=1; i<n; i++)
    {
        cin >> value;
        if(value > lmax) 
            lmax = value;
        else if(value < lmin) 
            lmin = value;
    }
    cout << lmax-lmin;
 
}

Nie potrzebujesz tablicy

Podobne pytania

0 głosów
4 odpowiedzi 482 wizyt
0 głosów
0 odpowiedzi 652 wizyt

92,563 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...