Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Дослідження методів сортування вибором

Реферат Дослідження методів сортування вибором





y"> { gt; gt;=1; ++;

} (prev!=0)//curState=xx10000

{^=1 lt; lt; pos; |=1 lt; lt; (pos - 1); |=1 lt; lt; (pos - 2);// CurState=xx01100

}=0;

}

} void shiftDown (int [] mas, int posHeapItemsAmount, int indexLastTop)//Реалізація функції просейкі вниз, в ній задається також mas []

{posCurNode=indexLastTop;// indexLastTop - індекс крайней вершини

while (posHeapItemsAmount gt; 1)//nextPosHeapItemsAmount - кількість елементв в купи, вершина якої виявилося максимальної з усіх вершин куп

{

//позиція правого синаposR=posCurNode - 1;

//позиція лівого синаposL=posR - LeoNum [posHeapItemsAmount - 2];// Число елементів в поточній купи

int posMaxChild=posL; posNextTop=posHeapItemsAmount - 1;

if (mas [posR] gt; mas [posL])//якщо позиція правого сина більше лівого

{= posR;// То старший син правий

posNextTop=posHeapItemsAmount - 2;

} (mas [posCurNode] lt; mas [posMaxChild])

{(ref mas [posCurNode], ref mas [posMaxChild]);=posNextTop;=posMaxChild;

};

}

} void make_heap_pool (int [] mas)//Функція створення послідовності куп з довільного масиву.

{(int i=0; i lt; mas.Length; i ++)

{posHeapItemsAmount=NextState (ref curState); (posHeapItemsAmount!=- 1) (mas, posHeapItemsAmount, i);

}

}

//Серед вершин куп знаходимо максимальний елемент

//mas - масив

//curState - число, двійкове подання якого описує поточний масив куп

//indexLastTop - індекс крайней вершини

//nextPosHeapItemsAmount - кількість елементв в купи, вершина якої виявилося максимальної з усіх вершин куп

//Повернення: індекс елементу (однієї з вершин купи), який більше ніж інші вершини кучint findPosMaxElem (int [] mas, int curState, int indexLastTop, ref int nextPosHeapItemsAmount)//Функція пошуку максимального елемента серед вершин куп

{pos=0;

//іщім позицію першого одиничного біта

while (! Convert.ToBoolean (curState amp; 1))

{ gt; gt;=1; ++;

} posMaxTopElem=indexLastTop;=pos; curTopElem=indexLastTop - LeoNum [pos]; gt; gt;=1; ++; (curState!=0)

{((curState amp; 1)!=0)

{(mas [curTopElem] gt; mas [posMaxTopElem])

{= curTopElem;=pos;

} -=LeoNum [pos];

} gt; gt;=1; ++;

} posMaxTopElem;

}

void smoothSort (int [] mas)//функція плавна сортування

{_ heap_pool (mas);// Виклик функції, що створює послідовність куп з довільного масиву

for (int i=mas.Length - 1; i gt;=0; i -)

{nextPosHeapItemsAmount=0; posMaxTopElem=findPosMaxElem (mas, curState, i, ref nextPosHeapItemsAmount);// Максимальний верхній елемент купи отримує значення у вигляді результату функції findPosMaxElem (posMaxTopElem!=I)

{(ref mas [i], ref mas [posMaxTopElem]);// Викликаємо функцію swap і передаємо в неї значення mas [i] і mas [posMaxTopElem] (mas, nextPosHeapItemsAmount, posMaxTopElem);// Викликаємо функцію shiftDown

} (ref curState);// Викликаємо функцію PreveState і передаємо значення, посилаючись (ref) на значення змінної curState

}

} void swap (ref int a, ref int b)//функція перестановки (swap)

{temp=b;=a;=temp;

}

}

}


Назад | сторінка 9 з 9





Схожі реферати:

  • Реферат на тему: Розробка програми для пошуку максимально віддалених вершин у графі
  • Реферат на тему: Аналіз конструкцій сепараторів для видалення домішок з купи картоплі
  • Реферат на тему: Пошук найкоротшого шляху між парами вершин в орієнтованому і неориентирован ...
  • Реферат на тему: Збірка Івана Франка "З вершин и низин"
  • Реферат на тему: Аналіз методів сортування одновимірного масиву