1, 10, 2, 3 দিয়ে কিছু বাছাই করার পদ্ধতিগুলি কেন ...?


30

আমি লক্ষ করেছি যে অনেকগুলি সাংখ্যিক বাছাই করার পদ্ধতিগুলি প্রত্যাশিত 1, 2, 3, 10 এর পরিবর্তে 1, 10, 2, 3 ... অনুসারে বাছাই করা মনে হচ্ছে ... আমার এমন পরিস্থিতি নিয়ে আসতে সমস্যা হচ্ছে যেখানে আমি করব প্রথম পদ্ধতিটি প্রয়োজন এবং ব্যবহারকারী হিসাবে আমি যখনই বাস্তবে এটি দেখি তখন হতাশ হয়ে পড়ি। দ্বিতীয়টির চেয়ে প্রথম স্টাইলের জন্য কি বৈধ ব্যবহারের মামলা রয়েছে? যদি তাই হয়, তারা কি? যদি তা না হয় তবে প্রথম ধরণের স্টাইলটি কীভাবে কার্যকর হয়েছিল? প্রতিটি বাছাই পদ্ধতির সরকারী নাম কি?


আপনার প্রশ্নের উত্তর নয়, তবে আপনি যদি স্ট্রিংগুলির একটি সংখ্যা বাছাই করতে পারেন যাতে সংখ্যা থাকতে পারে, আপনি সম্ভবত আলফানাম
তেহশ্রাইক

এটা খুব সহজ। বাছাই করার সময়, অ্যালগরিদম বাম থেকে ডানে স্ক্যান করে। সুতরাং, যখন এটি 1 এবং 5 এর কথা আসে, 5 টি বৃহত্তর হয়, এবং 1 টি 134234 এর মতো 1 টি যদি বড় সংখ্যার অংশ হয় তবে এটি ঠিক নির্মমভাবে এই ইভেন্টের সাথে যায় 13 134234 5 এর চেয়ে বড় হয় তা জানতে আমাদের অবশ্যই স্ক্যান করতে হবে সংখ্যাটি শেষ অঙ্কে (আসলে প্রথম অঙ্ক) 4 এর পরে পিছনের দিকে কাজ করুন এবং দেখুন যে এটি আসলে একটি 100000 যা 5 এর চেয়ে অনেক বড় is সুতরাং, আপনার সাধারণ অন্ধ সাজানোর কাজটি এটি করে না কারণ এটি কেবল চরিত্রের সাথে তুলনা করে তুলনা (বা তার আগে) এর পরে ঘটে যাওয়া চরিত্রটিকে উপেক্ষা করা।
AbstractDissonance

1
আপনি যদি এন.ইউইকিপিডিয়া.আর.উইকি / প্রাকৃতিক_সোর্ট_অর্ডারটি পড়ে থাকেন তবে তা বোঝা উচিত। প্রাকৃতিক ক্রমে, অঙ্কগুলির স্ট্রিংগুলি একটি একক "চরিত্র" হিসাবে বিভক্ত হয়। শারীরিকভাবে নয়, কেবল যুক্তিযুক্তভাবে তাই আমরা এখনও প্রথম ক্ষেত্রেটির মতো অক্ষরের তুলনা করতে পারি তবে আমরা পূর্ণসংখ্যার স্ট্রিংগুলিকে অক্ষরের সাথে অক্ষরের পরিবর্তে পূর্ণসংখ্যার স্ট্রিংয়ের সাথে তুলনা করতে সক্ষম হব, যা আমাদের সম্পূর্ণ মানটির সাথে তুলনা করতে দেয়। সকল প্রকারের এইভাবে হওয়া উচিত কারণ আমরা এইভাবেই জিনিসগুলি পড়ি (সংখ্যার জন্য, আমরা আসলে ডান থেকে বামে পড়ি, এমনকি বাম থেকে ডান স্ট্রিংয়েও 1234 = 1000 + 200 + 30 + 4, 4000 + 300 + 20 + নয় 1
অ্যাবস্ট্রাক্ট

উত্তর:


62

এটি লিকক্সোগ্রাফিক বাছাই যার অর্থ মূলত ভাষাটি ভেরিয়েবলগুলিকে স্ট্রিং হিসাবে ব্যবহার করে এবং চরিত্রের সাথে চরিত্রের তুলনা করে (এর "200"চেয়ে বড় "19999"কারণ এর '2'চেয়ে বড় '1')

এটি ঠিক করতে আপনি পারেন

  • মানগুলি পূর্ণসংখ্যার হিসাবে বিবেচিত হবে তা নিশ্চিত করুন,

  • '0'স্ট্রিংগুলিতে প্রিপেন্ড করুন যাতে সকলের সমান দৈর্ঘ্য থাকে (কেবলমাত্র কার্যকর যখন আপনি সর্বোচ্চ মান জানেন)।
    এজন্য আপনি মিডিয়া ফাইলগুলিতে (S1E01) একটি প্রেন্টেন্ডড 0 সহ পর্বের নম্বরগুলি দেখতে পাবেন যাতে কোনও শব্দতাত্ত্বিক ধরণের জিনিসটি গোলমেলে না ফেলে এবং প্রোগ্রামগুলিকে কেবল বর্ণানুক্রমিক ক্রমে খেলতে / প্রদর্শন করতে দেয়,

  • বা একটি পছন্দসই তুলনা করুন যা প্রথমে স্ট্রিংগুলির দৈর্ঘ্যের তুলনা করে (ছোট ছোট স্ট্রিংগুলি ছোট ছোট পূর্ণসংখ্যার) এবং যখন তারা সমান হয় তবে অভিধানের তুলনা করুন (শীর্ষস্থান সম্পর্কে সতর্ক '0')


5
'লেক্সিওগ্রাফিক' এর জন্য +1। এই শব্দটি কখনই শুনিনি, আমি কেবল এটিকে বর্ণমালা বাছাই হিসাবে ভাবা হত - সংখ্যাগুলি একটি স্ট্রিং ধরণের হিসাবে বিবেচিত হচ্ছে, যেমনটি আপনি বলেছেন।
অজ্ঞাতনামা

3
স্ট্রিংগুলিতে '0' প্রিপেন্ড করার জন্য +1। আমি এটি প্রোগ্রামিং করছিলাম না, এটি আমার ফোল্ডারের নামে ছিল এবং 'অধ্যায় 2' এর আগে 'অধ্যায় 2' আসছে। তারপরে আমি 01-09 নামে 1-9 অধ্যায় করেছি এবং এটি এখন "সঠিকভাবে" সাজানো হয়েছে।
মার্ভিন

6

বর্ণানুক্রমিকভাবে, 1 টি 2 এর আগে আসে 2 যখনই আপনি প্রথম পদ্ধতিটি দেখেন, এটি পছন্দনীয় কারণ নয়, তবে বাছাই করা কঠোরভাবে বর্ণানুক্রমিক (এবং বাম থেকে ডানদিকে একবারে একটি চরিত্র হয়): 1, 2, 10 বোঝায় আপনার কাছে কিন্তু এমন কোনও কম্পিউটারের কাছে নয় যা কেবল বর্ণমালিক তুলনা জানে। এ জাতীয় সহজ তুলনা করার উপায় নেই যে 0 টি অনুসরণ করে আসলে দুটি পরে আসে ।

আপনি যখন মিশ্র শব্দ এবং সংখ্যা বাছাই করতে দেখেন যে সংখ্যার সাথে সঠিকভাবে আচরণ করে, কারণ এটি বাছাই করা আরও বুদ্ধিমান এবং তার উপরে, এখনও কেবল স্ট্রিংয়ের শুরুতে বা শেষে সাধারণত কাজ করে।


4

আপনি সংখ্যার পরিবর্তে বর্ণমালার সংখ্যার স্ট্রিং সাজানোর সময় এটি ফলাফল।

এই সাজানোর শৈলীটি ইউনিক্স sortকমান্ডের ডিফল্ট আচরণ উদাহরণস্বরূপ, আপনি যদি না --numeric-sortকমান্ড লাইন বিকল্পটি ব্যবহার করেন , যা এটি সংখ্যার মানগুলি ব্যাখ্যা করার চেষ্টা করতে বলে।


4

এই ধরণের কী তা অন্যের উত্তর রয়েছে তবে আপনি কেন এটি দেখেন সে সম্পর্কে প্রত্যেকেই আপনার প্রশ্নের উত্তর দেয় না। উত্তরটি সত্যই উত্তেজনাপূর্ণ নয়। এটি সাধারণত একটি বাগ। সর্বাধিক বাছাইয়ের পদ্ধতিগুলি এক বা অন্যটিতে ডিফল্ট হয়ে যায় এবং প্রোগ্রামগুলি সংখ্যার বাছাইয়ের সময় ডিফল্ট পরিবর্তন করা অসতর্ক।


মিশ্র বর্ণানুক্রমিক / সংখ্যাসঙ্গিক প্রসঙ্গে অভিজ্ঞ ব্যবহারকারীরা লেক্সিওগ্রাফিক বাছাই পছন্দ করবেন, কারণ এটি ধারাবাহিক এবং অনুমানযোগ্য। লেক্সিওগ্রাফিক এবং সংখ্যার বাছাইয়ের "বুদ্ধিমানভাবে" মিশ্রণের চেষ্টা করে এমন প্রতিটি অ্যাপ্লিকেশনটি কিছুটা ভিন্নভাবে কাজ করে, যা সন্দেহজনক ইউটিলিটি সাজিয়ে তোলে।
j__m
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.