Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.961 pregleda

Najnovija ↓

N minimalnih elemenata niza 18.10.2008. u 19:15 · pre 219 meseci #1
Dakle, treba da iz jednog niza npr. x(10) nadjem 7 najmanjih elemenata niza.
Ako nemko ima neku ideju ili vec napisan kod koji radi isto to ili slicno,
bio bih vrlo zahvalan.
Sad malo podataka: u pitanju je program u VB-u, niz ukupnih elemenata je x(n),
pomocni niz za 7 min. elemenata bice z(k).
Evo i koda koji sam napisao za trazenje minimalnog elementa.

Code:

Public Function minimalni(ByVal x() As Double, ByVal min As Double) As Double
        min = x(0)
        For i = 0 To n - 1
            If x(i) < min Then
                min = x(i)
            End If
        Next
             Return min
    End Function


E sad mene zanima kako napisati kod za npr. 7 minimalnih elemenata i te elemente
smjestiti u niz z(k).
Potpis
www.mladenmp.ml
Re: N minimalnih elemenata niza 18.10.2008. u 20:01 · pre 219 meseci
izmenjeno 1 put, poslednji put Igor Gajic 18.10.2008. u 21:05
  1. Igor Gajic18.10.2008. u 21:05zapis iz teksta poruke
#2
Najprostije sto meni pada na pamet je da ih sortiras u rastucem poretku i da uzmes prvih 7 elemenata.
Re: N minimalnih elemenata niza 20.10.2008. u 16:40 · pre 219 meseci #3
Evo nesto na brzinu ... nisam imao vremena da je optimalizujem. Mozda ti neko drugi napise neku bolju fn za ovo , a mozes i ovu da sredis...
Funkcija vraca prvih No najmanjih elemenata

Code:

Public Class Form1

    'Array - ulazni Double niz, No - koliko elemenata se trazi 
    Public Function Min(ByVal Array() As Double, ByVal No As Double) As Double() ' vraca niz brojeva 

        Dim retarr(No - 1) As Double, n As Long, i As Long, cn As Double = 0
        If (No > UBound(Array) + 1 Or No = 0) Then Return retarr ' ako je trazeno vise brojeva nego sto ima u nizu

        For n = LBound(retarr) To UBound(retarr)
            For i = LBound(Array) To UBound(Array)
                If (n = LBound(retarr)) Then
                    If (Array(i) < cn) Then cn = Array(i)
                Else
                    If cn = retarr(n - 1) Then
                        If (Array(i) > retarr(n - 1)) Then cn = Array(i)
                    Else
                        If (Array(i) > retarr(n - 1) And Array(i) < cn) Then cn = Array(i)
                    End If
                End If
            Next
            retarr(n) = cn
            Debug.Print(retarr(n))
        Next
        Return retarr
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim niz(9) As Double, n As Integer

        For n = 0 To 9 ' punimo niz brojevima  9,8,7,6,5,4,3,2,1,0
            niz(9 - n) = n
        Next n

        Min(niz, 5)
    End Sub
End Class
Potpis
HomePage http://www.eurora3d.com
Re: N minimalnih elemenata niza 21.10.2008. u 23:52 · pre 219 meseci #4
Code:
int [] f (int [] niz, int n)
{
   Array.Sort(niz);
  int rv = new int[n];
   for (int i=0;i<n;i++)
      rv[i]=niz[i];
   return rv;
}

ovo sortiranje ti je quicksort (ocekivano N*log(N))

mogao bi da optimizujes, da ne sortiras citav niz, vec da radis radis particionisanje ulaznog niza (kao sto radi [randomized] quicksort) , pa da juris particioni element na poziciji k. - al u tvoj slucaju nije vredno truda... prosto sortiraj niz i izvuci prvih k komada...
Re: N minimalnih elemenata niza 22.10.2008. u 02:46 · pre 219 meseci #5
Citat:
sallle: 
Code:
int [] f (int [] niz, int n)
{
   Array.Sort(niz);
  int rv = new int[n];
   for (int i=0;i<n;i++)
      rv[i]=niz[i];
   return rv;
}

ovo sortiranje ti je quicksort (ocekivano N*log(N))

mogao bi da optimizujes, da ne sortiras citav niz, vec da radis radis particionisanje ulaznog niza (kao sto radi [randomized] quicksort) , pa da juris particioni element na poziciji k. - al u tvoj slucaju nije vredno truda... prosto sortiraj niz i izvuci prvih k komada...


E bas ti hvala. to mi je i trebalao da u 3 linije zavrsim funkciju.
sve radi kako treba.nisam znao da ima ugradjenu funkciju za sortiranje
Hvala jos jednom.
Potpis
www.mladenmp.ml
Re: N minimalnih elemenata niza 22.10.2008. u 15:37 · pre 219 meseci #6
hendluj (ako vec nisi) situaciju kad je n > niz.Length, i kad je n<1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme