การจัดเรียงแบบลูป
หน้าตา
Cycle Sort เป็นการจัดเรียงตัวเลขตามลำดับ โดยเอาตัวเลขในลำดับแรกเทียบกับตัวเลขลำดับถัดไปเรื่อยๆ จนตัวเลขตัวแรกที่เทียบตรงกับลำดับ เช่น ตัวเลขตัวแรกลำดับคือ5 เทียบกับ ตำแหน่งต่อไปเรื่อยจนถึงตำแหน่งที่5 ก็จะทำการสลับตำแหน่งให้ตัวเลขในตำแหน่งที่5นั้นไปอยู่ตำแหน่งแรก และเอาเลข5จากตำแหน่งแรกไปอยู่ตำแหน่งที่5 และทำเหมือนเดิมซ้ำไปเรื่อยๆจนทุกตัวอยู่ในตำแหน่ง
Coding
[แก้]def cycleSort(array):
for cycleStart in range(0, len(array) - 1):
item = array[cycleStart]
pos = cycleStart
for i in range(cycleStart + 1, len(array)):
if array[i] < item:
pos += 1
if pos == cycleStart:
continue
while pos != cycleStart:
pos = cycleStart
for i in range(cycleStart + 1, len(array)):
if array[i] < item:
pos += 1
while item == array[pos]:
pos += 1
array[pos],item = item, array[pos]
return(array)
อ้างอิง
[แก้]Nishant Singh;geeksforgeeks.cycle sort