Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- mefistofeles: Az elhízás nem akaratgyengeség!
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
- sziku69: Szólánc.
- GoodSpeed: Windows 11 PRO FPP (Full Packaged Product) - Retail, Box, dobozos
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- ldave: New Game Blitz - 2026
-
LOGOUT

Új hozzászólás Aktív témák
-
Skaidy
csendes tag
Üdv!
Remélem jó helyre írok, ha nem akkor sry.
Nem tudtam megoldani egy feladatot és ebben szeretnék segítséget kérni tőletek.A feladat:
Mérje meg a gráf két csúcsa közötti legrövidebb út keresésének Dijkstra algoritmusának hatékonyságát! Töltsön le különböző méretű txt szövegeket (például a www.gutenberg.org-ról), olvassa be a segédprogram segítségével a memóriába, és hozza létre a gráfot. A gráf csúcsai az adott szavak, és két csúcs között fut él, ha a megadott távolságfüggvény kisebb, mint egy előre megadott szám (ezt a programozó állítja be.) Ezen a gráfon végezze el a keresést különböző méretű bemenetekre. Dokumentálja precízen a mérés lépéseit.
Igazából az a gond, hogy órán még érintőlegesen sem vettük Dijkstra-algoritmusát, ami nem a legfőbb probléma, mert interneten utánajárva könnyen megtalálom, hogy hogy is működik. Viszont magát a programot sem látom át (mivel keveset programoztam még C++ban, inkább csak C-ben), meg hogy hogy kéne felfogni egy szöveget gráfokban..
A segédprogram:
// szavankent beolvasunk egy szoveget
// a szavakat kisbetusitjuk, kitoroljuk a nem betuket
// az eredmenyt rendezzuk, toroljuk az ismetlodeseket
// es elmentjuk az a[] tombbe#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int Z=10000000;
string a[Z];
string b[Z];
//ha nagyon nagy meretu tombot foglalunk le,
//azt vagy dinamikusan tudjuk megtenni (new fuggveny)
//vagy globalis valtozokent
int N=0;void beolvas(){
string st;
int i,j,k,s;
ifstream fin("robinson.txt");
while(fin>>st){
s=st.size();
for(k=0,i=0;k<s;k++){
if(st>='A'&&st<='Z')st-='A'-'a';
//nagy betu -> kisbetu
if(st<'a'||st>'z')st.erase(st.begin()+i);
//ami nem betu kitoroljuk
else i++;
}
if(st.size()>0)b[N++]=st;
//ha maradt a szobol berakjuk a tombbe
}
sort(b,b+N);
a[0]=b[0];
st=b[0];
j=0;
for(k=1,i=1;k<N;k++){
if(b[k]!=st){a[i++]=b[k];st=b[k];j=0;}
else if(j<2){ //a 2-o atirhato, ha ugy tartja szuksegesnek!
a=b[k];
j++;
for(s=0;s<j;s++)a+='q';
i++;
}
//ha nincs ismetlodes, elmentjuk az a[] tombbe
//ha van, akkor irjunk moge egy 'q' betut, de max 2-ot, vagy irja at!
}
N=i;
cout<<"N: "<<N<<endl;
}int htavolsag(string a, string b){
//visszaadja, hogy betuk szerint mi a ket string tavolsagaif(a==b)return 0;
string tmp;
if(a.size()>b.size()){tmp=a;a=b;b=tmp;}int x,z=0,f;
for(x=0;x<a.size();x++)
z+=(a[x]!=b[x]); //hany db betuben kulonbozik
z+=b.size()-a.size(); //+szohossz kulonbseg
z=z*z; //negyzetre emeljuk
if(z>25) return 127; //a 0,1,2,3,4,5 betu kulonbsegek elfogadhatoak
//a '127' a vegtelen nagy
else return z;
}Természetesen nem feltétlen kell a kész kódot valakinek elkészíteni, csak iránymutatást szeretnék kérni, és hogy egyáltalán hogy álljak neki, és hogy mi a lényege ennek.
Előre is köszönöm.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Test Drive Unlimited Solar Crown
- Gumi és felni topik
- League of Legends
- Android alkalmazások - szoftver kibeszélő topik
- Megérkezett az Apple 5K-s, 120 Hz-et biztosító monitora
- Apple MacBook
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Még optimistán is alábecsülte az AI CPU-igényét az AMD vezetője
- Revolut
- Samsung Galaxy S23 Ultra - non plus ultra
- További aktív témák...
- Lenovo ThinkPad T590 15,6" - i5 8265U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- Gamer PC AMD Ryzen 3500X/16GB DDR4 /Nvidia 1650 4 GB/256 GB SSD + 1 TB HDD 6 hó garancia, számlával!
- Eladó 2db Pixel 7 obszidián 128/8
- Apple Watch Series 11 46mm GPS+Cellular , Újszerű, 1 Év Garanciával
- MacBook Air M1 8/256GB
- Akció!!! Sosemhasznált! HP OmniBook 5 Ultra 7 255U 5.2GHz 16GB 512GB 16" FHD+ Gar.: 1 év
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Samsung Galaxy S22 / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
- magyar billentyűzet - 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

