GoodLuck يوللانغان ۋاقتى 2014-10-3 15:22:45

كۆپ قوللىنىلىدىغان رەتلەش ئۇسۇللىرى

مەن تەييارلىغانلىرى Java كودى، زۆرۆر بولسا باشقا تىللارغا تەرجىمە قىلىۋالساڭلار بولىدۇ.
1. Bubble Sort يەنى 冒泡排序
ئۇيغۇرچە كۆپۈك چىقىرىپ رەتلەش دېسەك سەل ئۇدۇل كېلەمدىكىن دەيمەن. چۈنكى بۇ ئۇسۇلدا كىچىكلىرىنى ئۈستىگە ماڭدۇرىمىز.void doBubbleSort(int[] src)
    {
       int len=src.length;
       for(int i=0;i        {
         for(int j=i+1;j          {
            int temp;
            if(src>src)
            {
                  temp=src;
                  src=src;
                  src=temp;
            }            
         }
         printResult(i,src);
       }      
    }2. Selection Sortيەنى 选择排序
تاللاپ رەتلەس ئۇسۇلى: رەتلىمەكچى بولغان ئۇچۇرغا n-1 قېتىم مەشخۇلات قىلىپ، بىرىنچى قېتىم n نىڭ ئىچىدىكى ئەڭ كىچىكىنى 1ىنچىسى بىلەن ئالماشتۇرىمىز، ئىككىنچى قېتىم 2 دىن باشلاپ ن غىچە بولغاننىڭ ئىچىدىكى ئەڭ كىچىكىنى 2ىنچىسى بىلەن ئالماشتۇرىمىز، مۇشۇنداق قىلىپ n-1 قېتىم مەشخۇلات قىلغاندىن كېيىن كىچىكتىن چوڭىغا قاراپ رەتلىنىدۇ.void doChooseSort(int[] src)
    {
       int len=src.length;
       int temp;
       for(int i=0;i        {
         temp=src;
         int j;
         int samllestLocation=i;//最小数的下标
         for(j=i+1;j          {
            if(src             {
                  temp=src;//取出最小值
                  samllestLocation=j;//取出最小值所在下标
            }
         }
         src=src;
         src=temp;
         printResult(i,src);
       }
    }3. Insertion Sort يەنى 插入排序
قىستۇرۇپ رەتلەش ئۇسۇلى: بۇ ئۇسۇلنى چۈشەندۈرسەم گەپ ئوماچ بوپ كەتكۈدەك، پروگراممىسىنىلا قالدۇراي، لازىم بولۇپ چۈشەنمىگەنلەر سوراڭلار.
while ئايلانمىسى بىلەن ئىشقا ئاشۇرۇش ئۇسۇلى: void doInsertSort1(int[] src)
    {
       int len=src.length;
       for(int i=1;i        {   
         int temp=src;
         int j=i;
         
         while(src>temp)
         {
            src=src;
            j--;
            if(j<=0)
                  break;
         }
         src=temp;
         printResult(i+1,src);
       }
    }For ئايلانمىسى بىلەن ئىشقا ئاشۇرۇش ئۇسۇلى:void doInsertSort2(int[] src)
    {
       int len=src.length;
       for(int i=1;i        {
         int j;
         int temp=src;
         for(j=i;j>0;j--)
         {
            if(src>temp)
            {
                  src=src;
                  
            }else//如果当前的数,不小前面的数,那就说明不小于前面所有的数,
                   //因为前面已经是排好了序的,所以直接通出当前一轮的比较
                  break;
         }
         src=temp;
         printResult(i,src);
       }
    }

hiyalqi يوللانغان ۋاقتى 2014-10-3 19:21:14

ھامان بىر كۈنىسى ئەسقېتىپ قالامىكى ، ھازىرغۇ پەقەت چۈشەنمىدىم، :lol

kakkur يوللانغان ۋاقتى 2014-10-3 19:28:37

قارىسام بەك مۇرەككەپ بىلىندى؛ماڭا نۇرغۇن ئىشلار مۇرەككەپ بىلىنەتتى قول سېلىپ قىلىپ باققاندىن كىيىن تەس ئەمەسلىكىنى بىلدىم بەلكىم بۇمۇ شۇنداقتۇر:lol

hiyalqi يوللانغان ۋاقتى 2014-10-4 21:19:46

بۇ تېما ئەڭ يېڭى تېما دىگەننىڭ ئەڭ ئۈستىدىلا تۇرىدىكەن ، يېڭى تېما يوللانمىغان ئوخشايدۇ دەپ قالىدىكەنمىز ، تەرتىپ بۇيىچە چىقىدىغان قىلىپ قويساق ....

MSM يوللانغان ۋاقتى 2014-10-6 20:17:51

java ئۆگەنگەن ۋاقىتلارنى ئەسلەپ قالدىم.

Aziz يوللانغان ۋاقتى 2014-10-10 10:33:25

ئەسسالامۇ ئەلەيكۇم،

يۇقۇرىدىكى 3 خىل رەتلەش (تەرتىپلەش) نىڭ ئىدىيىسى ئاددى، ئىخچام بولسىمۇ، ئەمما ئۈنۈمى ناھايىتى تۆۋەن بولغاچقا (بولۇپمۇ كۆپ مىقداردىكى ئۇچۇرنى بىر تەرەپ قىلىشتا ئۈنۈمى پەۋقۇلئاددە تۆۋەن بولغاچقا)، ئەمىلىيەتتە كۆپ ئىشلىتىلمەيدۇ. شۇڭا تېمىنى «كۆپ قوللىنىلىدىغان رەتلەش ئۇسۇللىرى» دىمەي، «ئەڭ ئاددى رەتلەش ئۇسۇللىرى» دىسەك مۇۋاپىق.

ئۈنۈمى ناھايىتى يۇقۇرى، سۈرئىتى تېز، ھەم كۆپ قوللىنىلىدىغان رەتلەش ئۇسۇللىرىدىن
Quick Sort (تېز رەتلەش)
Merge Sort (يىغىپ رەتلەش)
بار.

رەتلەش كومپيۇتېر ساھەسىدىكى ئەڭ مۇھىم ۋە كۆپ ئېھتىياجلىق ساھە بولۇپ، ئۇچۇرلا بولىدىكەن، ئۇنى رەتلەش ئېھتىياجى تۇغۇلىدۇ. يېڭى رەتلەش ئۇسۇلى (ئالگورىزىمى Algorithm) نى بايقاش، تېپىپ چىقىش ۋە بايقالغان رەتلەش ئۇسۇللىرىنىڭ ئۈنۈمى، تېزلىكىنى تەتقىق قىلىش كومپيۇتېر ئىلىمى ساھەسىدىكى ئەڭ ئاساسلىق تەتقىقاتلارنىڭ بىرى بولۇپ، بۇ ساھەدە تەتقىقات ھازىرمۇ داۋاملىشىۋاتىدۇ.

بىر سىنىپتىكى 30 ئوقۇغۇچىنىڭ ئىسىم-فامىلىسىنى رەتلەپ چىقىش ئاددى ئىشتەك كۆرۈنگەن بىلەن، دىيارىمىزدىكى مىليونلىغان ئۇيغۇرلارنىڭ ئىسم-فامىلىسىنى رەتلەش، مەلۇم بانكىدىكى مىليونلىغان خېرىدارلارنىڭ ئىسىم-فامىلىسىنى رەتلەپ چىقىش... قاتارلىق كۆپ مىقداردىكى ئۇچۇرلارنى تېز سۈرئەتتە، ئاز ئەمگەك ۋە ماتىريال تەننەرقى بىلەن رەتلەپ چىقىش... قاتارلىقلارنى كۆز ئالدىمىزغا كەلتۈرسەك، بۇ رەتلەش ئۇسۇلىنىڭ ھەقىقەتەن مۇھىملىقى بايقىلىدۇ.

ناۋادا ئۈنۈمى ھازىرقىلىرى بىلەن تەڭ تۇرغۇدەك يېڭىچە رەتلەش ئۇسۇللىرى بايقالسىمۇ كومپيۇتېر ئىلىمى ساھىسىدە دۇنيا مىقياسىدا داغ-دۇغا قوزغىغىدەك بايقاش بولۇپ قالىدۇ.

GoodLuck يوللانغان ۋاقتى 2014-10-10 11:23:33

تېز رەتلەش ئۇسۇلىنى يوللاشنى ئۇنتۇپ قاپتىمەن، سەل چولام تەگسە ئىنكاس شەكلىدە يوللاپ قوياي.

Merge Sort نى مەن ئۇچىرتىپ باقماپتىمەن.
@Aziz بولسا مىسال يوللاپ قويسىڭىز.

Aziz يوللانغان ۋاقتى 2014-10-17 20:09:58

Merge Sort

http://i987.photobucket.com/albums/ae355/aziz-a/Merge-sort-example-300px.gif

GoodLuck يوللانغان ۋاقتى 2014-10-17 20:41:45

@Aziz
Merge Sort بىز ئالى مەكتەپتىكى ۋاقىتتا تولا ئۆگەنگەن 二分法 غا ئوخشاپرا قالامدۇ نېمە ھە

Aziz يوللانغان ۋاقتى 2014-10-17 20:58:08

二分法 نىڭ نىمىلىكىنى بىلمەيدىكەنمەن.
Merge Sort نى خەنسوچە 归并排序 دەيدىكەن. (ۋىكىقامۇسىدا)
بەت: [1]
: كۆپ قوللىنىلىدىغان رەتلەش ئۇسۇللىرى