ထီနံပါတ် 2၊ 10၊ 7 ကို စီလျှင် 10 က ဘာကြောင့်ရှေ့ရောက်သလဲ
ထုတ်ဝေသည့်ရက် — UTC

စာရင်းတစ်ခုတွင် 10 က 2 ထက်ရှေ့ရောက်နေလျှင် အမြဲတမ်း source မှားနေသည်ဟု မဆိုလိုပါ။ Label များကို စာသားအဖြစ်စီထားခြင်းနှင့် ကိန်းတန်ဖိုးအဖြစ်စီထားခြင်းသည် အစဉ်မတူနိုင်သည်။
မူရင်းစာသားသုံးခု
ဤစိတ်ကူးမှတ်တမ်း၏ label များသည် “2”, “10”, “7” ဖြစ်သည်။ ဆွဲထုတ်လာသည့်အစဉ်၊ ဆုရလဒ် သို့မဟုတ် ခန့်မှန်းချက် မဟုတ်ပါ။
| စီသည့်နည်း | အစဉ် | နှိုင်းယှဉ်သည့်အရာ |
|---|---|---|
| ဤ digit စာသားများအလိုက် | 10, 2, 7 | စာလုံးတစ်လုံးစီ |
| ကိန်းတန်ဖိုးအလိုက် | 2, 7, 10 | 2၊ 7၊ 10 တန်ဖိုး |

စာသား10 ၏ပထမစာလုံး1 က စာသား2 ထက်ရှေ့ဖြစ်သောကြောင့် ပထမနည်းတွင်10 ရှေ့ရောက်သည်။ Python sorting ရှင်းလင်းချက် မှ key ဖြင့် နှိုင်းယှဉ်တန်ဖိုးသတ်မှတ်နိုင်သည့်အယူအဆကို အသုံးပြု၍ numeric key သီးခြားထားနိုင်သည်။
Label ကို အရင်မဖျက်ပါနှင့်
မူရင်း label နှင့် စီရန်အသုံးပြုမည့် numeric value ကို ကော်လံနှစ်ခုထားပါ။ “02” သည် entry identifier ဖြစ်နေလျှင် label ကို2 ဟုပြောင်းရေးခြင်းက identity ကိုပျက်စေနိုင်သည်။ ထိုဂိမ်း၏ field definition က ဂဏန်းတန်ဖိုးဟုတ်ကြောင်းပြမှ numeric comparison ကို အသုံးပြုပါ။
စီသည့်နည်းပြောင်းခြင်းက အုပ်စုဝင်ကို မပြောင်းပါ။ ပထမစာရင်းနဲ့ဒုတိယစာရင်းတွင် label သုံးခုစလုံးရှိနေသည်။ စီထားသောအစဉ်ကို ထီထွက်လာသည့်အစဉ်ဟုလည်း မယူသင့်ပါ။
02 နှင့် 2 တို့၏ numeric key တူနေပါက
အခြားနမူနာတွင် label စာသားများက “02”, “2”, “10” ဖြစ်သည်ဟု ယူပါ။ ကိန်းတန်ဖိုးအဖြစ်ဖတ်လျှင် ပထမနှစ်ခုလုံး၏ key က 2 ဖြစ်သည်။ သို့သော် ၎င်းတို့ကို တူညီသော entry ဟု ဖျက်ပေါင်းရန် ဤအချက်တစ်ခုတည်း မလုံလောက်ပါ။ မူရင်း label၊ row ID နှင့် numeric key ကို သီးခြားထားရမည်။
Python ၏ stable sort ကိုအသုံးပြုလျှင် key တူသောအတန်းများသည် မူရင်းအချင်းချင်းအစဉ်ကို ထိန်းထားသည်။ အခြားစနစ်တွင် tie-break နည်းကို သီးခြားသတ်မှတ်ထားနိုင်သည်။ ထို့ကြောင့် label တူ/မတူစစ်ခြင်း၊ numeric key တူ/မတူစစ်ခြင်းနှင့် duplicate row ဖယ်ရှားခြင်းကို လုပ်ဆောင်ချက်တစ်ခုတည်းဟု မယူပါနှင့်။
အကွက်လွတ်နှင့် 2a ကို သုညအဖြစ် မပြောင်းပါနှင့်
နမူနာစာရင်းတွင် “2a” သို့မဟုတ် အကွက်လွတ်ပါလာလျှင် ဤကိန်းပြည့်မော်ဒယ်အတွက် တိုက်ရိုက် numeric key မရှိပါ။ Error ကိုသုညဖြင့် အစားထိုးလိုက်လျှင် မူရင်းတွင်မရှိသော 0 ကို စာရင်းထဲဖန်တီးမိမည်။ အတန်းကို “မစစ်ရသေး” သို့မဟုတ် “format မကိုက်” ဟု သီးခြားထုတ်ထားပြီး source ကိုပြန်ကြည့်ပါ။
နံပါတ်အစဉ်က ဆွဲထုတ်သည့်အစဉ် မဟုတ်ပါ
မူရင်းမှတ်တမ်းတွင် draw sequence 1၊ 2၊ 3 နှင့် label 7၊ 2၊ 10 ဟုရှိလျှင် numeric sort ပြီးနောက် display သည် 2၊ 7၊ 10 ဖြစ်နိုင်သည်။ ဆွဲထုတ်လာသည့်အစဉ်ကို ပြန်လိုပါက သိမ်းထားသော sequence ကိုအသုံးပြုရမည်။ စီထားပြီးသော number label မှ မူရင်းအစဉ်ကို ပြန်မခန့်မှန်းပါနှင့်။
နောက်ဆုံးတွင် စီမတိုင်မီနှင့် စီပြီး အတန်းအရေအတွက်၊ row ID များနှင့် မူရင်း label များ တူညီနေကြောင်းစစ်ပါ။ Sort သည် မြင်ရသည့်နေရာကိုသာ ပြောင်းသင့်ပြီး ပွဲရလဒ်၊ ဆုအဆင့် သို့မဟုတ် accepted entry ကို အလိုအလျောက်မပြောင်းပါ။