Created
May 26, 2015 18:27
-
-
Save lmasikl/b6f1f2c16f6064fb0f24 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void noDups(){ | |
int in, out; | |
for (in=0; in < nElems-1; in++){ | |
long temp = a[in]; | |
out = in; | |
while (out < nElems-1 && a[out+1]==temp){ | |
// До тех пор пока не конец массива или следующий элемент равен текущему | |
// Заполняем "пустым" значением | |
a[out]=-1; | |
++out; | |
} | |
} | |
for (out = 1; out < nElems; out++){ | |
long temp = a[out]; | |
in = out; | |
while (in > 0 && a[in-1] >= temp){ | |
// До тех пор пока индекс больше нуля или предыдущий меньше с текущим индексом | |
// смещаем массив вправо, так понимаю что перемещаешь "пустые" значения в начало | |
a[in] = a[in-1]; | |
--in; | |
} | |
a[in] = temp; | |
} | |
out = 0; | |
for (in = 0; in < nElems-1; in++) { | |
// Считаем кол-во "пустых" значений | |
if(a[in]==-1) | |
out++; | |
} | |
for (int i = 0; i < out ; i++) { | |
long temp = a[out]; | |
for (int j = 0; j < nElems-1; j++) { | |
// Смещаем массив влево, так понимаю затирая "пустые значения" | |
a[j]=a[j+1]; | |
} | |
nElems--; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment