il = lndexFind(l); if(il != m_clMac)
if(m_rgl[il] == I) return ii;
// Nie został znaleziony i jest miejsce, aby go wstawić. memmove(m_rgl+il+1, m_rgl+il, (m_clMac - il)*sizeof(long));
m_rgl[il] = I;
++m_clMac; return il;
// Przeszukiwanie binarne i zwrot indeksu pozycji, w której wartość nie jest // większa niż szukany klucz, int SArray::lndexFind(long I)
// Wskazówka 17. int iLeft = 0; int iRight = m_clMac; int iMiddle; long IM;
if(m_clMac == 0) return 0;
while(iLeft < iRight)
iMiddle = (iLeft + iRight)/2;
IM = m_rgl[iMiddle]; if(l < IM)
iRight = iMiddle; else if(l > IM)
iLeft = iMiddle+1; else
return iMiddle;
//To znaczy iLeft >= iRight. return iLeft;
int SArray::Unsortedlnsert(long I)
if(clMax == m_clMac) return -1; m_rgl[m_clMac] = I;