2. Сызықты сұрыптау
Массивтің ішінен ең үлкен элемент табылады. Ол элемент р-шы орында тұрсын. Сол элементті n-ші орындағы элементпен салыстырады. Егер n<>p болса, онда n-ші орында орналасқан элементпен орындарын ауыстырады. Әрі қарай қалған реттелмеген элементтердің ішінен тағы ең үлкен элемент табылады да, ол (n-1)-ші элементпен салыстырылады, егер ең үлкен элемент (n-1)-ші элементтен үлкен болса, орнында қалады да, болмаса орындарын ауыстырады. Осы процесс барлық элементтерге қолданылып шығады.
Алгоритмі келесідей болады:
Белгілеулер: a[1..n] –берілген массив болсын, r – массивтің реттелмеген элементтерінің саны.
1. R=n болсын.
2. Max=max{a[1..r]} табамыз.
3. Max<>r және a[max]<>a[r] болса, онда a{max] элементі мен a[r] элементі орындарын ауыстырады
4. әйтпесе R=r-1 деп реттелмеген келесі элементтерге көшеміз. Алғашқы r элементтер – реттелмеген элементтерді құрайды, ал соңғы n-r элементтер өсуі бойынша реттеледі.
5. Егер r=1 болса, онда реттеу аяқталады, әйтпесе 2-ші пунктке көшеді.
Достарыңызбен бөлісу: |