Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python เพื่อใช้งาน Shell Sort


เมื่อจำเป็นต้องใช้การเรียงลำดับเชลล์ ฟังก์ชันจะถูกกำหนด ซึ่งใช้รายการและความยาวของรายการเป็นอาร์กิวเมนต์ รายการนี้จัดเรียงตามจำนวนองค์ประกอบเฉพาะ โดยที่จำนวนองค์ประกอบจะเป็นค่าที่มากที่สุด จนกว่าจำนวนองค์ประกอบจะมีค่าน้อยที่สุด

เสร็จสิ้นสำหรับรายการย่อยทั้งหมดในรายการ และรายการย่อยทั้งหมดจะถูกจัดเรียง

สามารถใช้รายการเพื่อเก็บค่าที่แตกต่างกัน (เช่น ข้อมูลของประเภทข้อมูลใดๆ เช่น จำนวนเต็ม จุดลอยตัว สตริง และอื่นๆ)

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

ตัวอย่าง

def shell_sort(my_list, list_len):
   interval = list_len // 2
   while interval > 0:
      for i in range(interval, list_len):
         temp = my_list[i]
         j = i
         while j >= interval and my_list[j - interval] > temp:
            my_list[j] = my_list[j - interval]
            j -= interval
         my_list[j] = temp
      interval //= 2

my_list = [ 45, 31, 62, 12, 89, 5, 9, 8]
list_len = len(my_list)
print ("The list before sorting is :")
print(my_list)
shell_sort(my_list, list_len)
print ("\nThe list after performing shell sorting is :")
print(my_list)

ผลลัพธ์

The list before sorting is :
[45, 31, 62, 12, 89, 5, 9, 8]

The list after performing shell sorting is :
[5, 8, 9, 12, 31, 45, 62, 89]

คำอธิบาย

  • มีการกำหนดวิธีการชื่อ 'shell_sort' ซึ่งรับรายการ และความยาวของรายการเป็นอาร์กิวเมนต์
  • ตัวแปร 'ช่วง' ถูกกำหนดโดยใช้ตัวดำเนินการระดับบิต '//'
  • ทำหน้าที่แบ่งพื้น
  • ปัดเศษค่าให้เป็นจำนวนเต็มที่ใกล้เคียงที่สุด
  • รายการถูกทำซ้ำ และสร้างตัวแปรชั่วคราว
  • ตัวแปร 'ช่วง' จะถูกเปรียบเทียบกับทุกดัชนีของรายการ และทุกองค์ประกอบในรายการจะถูกเปรียบเทียบกับตัวแปรชั่วคราว
  • ตัวแปร 'ช่วง' ถูกใช้อีกครั้งเพื่อดำเนินการแบ่งพื้น
  • รายการถูกกำหนดและแสดงบนคอนโซล
  • เมธอดนี้เรียกโดยการส่งผ่านรายการนี้และความยาวของมัน
  • ผลลัพธ์จะแสดงบนคอนโซล