যখন শেল সাজানোর প্রয়োজন হয়, তখন একটি ফাংশন সংজ্ঞায়িত করা হয় এবং এটি একটি তালিকা এবং তালিকার দৈর্ঘ্যকে আর্গুমেন্ট হিসেবে নেয়। এই তালিকাটি একটি নির্দিষ্ট সংখ্যক উপাদান পর্যন্ত সাজানো হয়েছে, যেখানে উপাদানের সংখ্যা সবচেয়ে বড় মান। এটি করা হয় যতক্ষণ না উপাদানের সংখ্যার মান সবচেয়ে ছোট হয়।
এটি তালিকার সমস্ত উপ-তালিকার জন্য করা হয়, এবং এই সমস্ত উপ-তালিকাগুলি সাজানো হয়৷
ভিন্নধর্মী মান (অর্থাৎ পূর্ণসংখ্যা, ফ্লোটিং পয়েন্ট, স্ট্রিং ইত্যাদির মতো যেকোনো ডেটা টাইপের ডেটা) সংরক্ষণ করতে একটি তালিকা ব্যবহার করা যেতে পারে।
নীচে একই -
এর একটি প্রদর্শন রয়েছে৷উদাহরণ
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' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা তালিকাকে এবং তালিকার দৈর্ঘ্যকে আর্গুমেন্ট হিসেবে নেয়।
- 'ইন্টারভাল' ভেরিয়েবলটি '//' বিটওয়াইজ অপারেটর ব্যবহার করে সংজ্ঞায়িত করা হয়।
- এটি ফ্লোর ডিভিশন সম্পাদন করে।
- এটি মানকে নিকটতম পূর্ণ সংখ্যায় বৃত্তাকার করে।
- তালিকাটি পুনরাবৃত্তি করা হয়েছে, এবং একটি অস্থায়ী পরিবর্তনশীল তৈরি করা হয়েছে।
- 'ইন্টারভাল' ভেরিয়েবলকে তালিকার প্রতিটি সূচকের সাথে তুলনা করা হয় এবং তালিকার প্রতিটি উপাদানকে সাময়িক পরিবর্তনশীলের সাথে তুলনা করা হয়।
- 'ইন্টারভাল' ভেরিয়েবল আবার ফ্লোর ডিভিশন করার জন্য ব্যবহার করা হয়।
- তালিকাটি সংজ্ঞায়িত, এবং কনসোলে প্রদর্শিত হয়।
- এই তালিকাটি এবং এর দৈর্ঘ্য অতিক্রম করে পদ্ধতিটিকে বলা হয়।
- আউটপুট কনসোলে প্রদর্শিত হয়।