การจัดเรียงแบบลูป

จากวิกิพีเดีย สารานุกรมเสรี

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