• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-167  評論-8  文章-0  trackbacks-0

             

            //******************直接插入排序************************* 
            #include <stdio.h> 
            #include 
            <stdlib.h> 
            void InsertSort(int a[], int n)
                   
            int temp=0
                   
            for(int i=1; i!=n; ++i)
                          
            if(a<a)
                                 temp 
            = a; 
                                 a 
            = a; 
                                 
            int j=0
                                 
            for(j = i-2;(temp < a[j])&&(j>=0); --j) 
                                        a[j
            +1= a[j]; 
                                 a[j
            +1= temp; 
                          }
             
                   }
             
            }
             
            void main()
                   
            int a[] = {56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length=sizeof(a)/sizeof(*a); 
                   InsertSort(a,array_length); 
                   
            for(int i = 0; i!=array_length; ++i) 
                          printf(
            "%d  ", a); 
            }
             
            //---------------------------------------------------------------------------- 
            //*****************折半插入排序**************************** 
            #include <stdio.h> 
            #include 
            <stdlib.h> 
            void BInsertSort(int a[], int n)
                   
            int temp,low,high,mid; 
                   
            for(int i=1; i!=n; ++i)
                          temp
            =a; 
                          low 
            = 0
                          high 
            = i-1
                          
            while(low<=high)
                                 mid
            =(low + high)/2
                                 
            if(temp <a[mid]) 
                                        high 
            = mid - 1
                                 
            else 
                                        low 
            = mid + 1
                          }
             
                          
            for(int j=i-1;j>=high+1;--j) 
                                 a[j
            +1]=a[j]; 
                          a[high 
            + 1= temp; 
                   }
             
            }
             
            void main()
                   
            int a[] = {56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length=sizeof(a)/sizeof(*a); 
                   BInsertSort(a,array_length); 
                   
            for(int i = 0; i!=array_length; ++i) 
                          printf(
            "%d  ", a); 
            }
             
            //------------------------------------------------------------------------ 
            //***********************希爾排序*********************** 
            #include <iostream.h> 
            void ShellInsert(int a[], int array_length,int dk)
                   
            int temp; 
                   
            for(int i = dk;i<=array_length;++i)
                          
            if(a<=a)
                                 temp 
            = a; 
                                 
            for(int j = i-dk; j>=0 && temp < a[j]; j -= dk) 
                                        a[j 
            + dk] = a[j]; 
                                 a[j
            +dk]=temp; 
                          }
             
                   }
             
            }
             
            void ShellSort(int a[], int array_length_a,int dlta[],int array_length_dlta)
                   
            for(int k=0; k < array_length_dlta; ++k) 
                          ShellInsert(a, array_length_a,dlta[k]); 
            }
             
            void main()
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length_a = sizeof(a)/sizeof(*a); 
                   
            int dlta[]={7,5,3,1,0}
                   
            int array_length_dlta = sizeof(dlta)/sizeof(*dlta); 
                   ShellSort(a,array_length_a, dlta, array_length_dlta); 
                   
            for(int i = 0; i < array_length_a; ++i) 
                          cout
            <<a<<" "
            }
             
            //---------------------------------------------------------------------------- 
            //***********************快速排序*********************** 
            #include <iostream.h> 
            int Partition(int a[], int low, int high)
                   
            int pivot, temp; 
                   pivot 
            = temp = a[low]; 
                   
            while(low < high)
                          
            while(low < high && a[high] >= pivot) 
                                 
            --high; 
                          a[low] 
            = a[high]; 
                          
            while(low < high && a[low] <= pivot) 
                                 
            ++low; 
                          a[high] 
            = a[low]; 
                   }
             
                   a[low] 
            = temp; 
                   
            return low; 
            }
             
            void QSort(int a[], int low, int high)
                   
            if(low < high)
                          
            int pivotloc = Partition(a, low, high); 
                          QSort(a, low, pivotloc 
            - 1); 
                          QSort(a, pivotloc 
            + 1, high); 
                   }
             
            }
             
            void QuickSort(int a[], int a_length)
                   QSort(a, 
            0, a_length-1); 
            }
             
            void main()
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length_a = sizeof(a)/sizeof(*a); 
                   QuickSort(a, array_length_a); 
                   
            for(int i = 0; i < array_length_a; ++i) 
                          cout
            <<a<<" "
            }
             
            //---------------------------------------------------------------------------- 
            //***********************冒泡排序*********************** 
            #include <iostream.h> 
            void BubbleSort(int a[], int n)
                   
            bool change = true
                   
            int tmp; 
                   
            for(int i=n-1;i>=1&&change;--i)
                          change 
            = false
                          
            for(int j=0; j < i;++j)
                                 
            if(a[j]>a[j+1])
                                        tmp
            =a[j]; 
                                        a[j]
            =a[j+1]; 
                                        a[j
            +1]=tmp; 
                                        change 
            = true
                                 }
             
                          }
             
                   }
             
            }
             
            int main()
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length = sizeof(a)/sizeof(*a); 
                   BubbleSort(a, array_length); 
                   
            for(int i=0; i!=array_length; ++i) 
                          cout
            <<a<< "  "
                   
            return 0
            }
             
            //---------------------------------------------------------------------------- 
            //***********************簡單選擇排序*********************** 
            #include <iostream.h> 
            void SelectSort(int a[], int array_length)
                   
            for(int i=0; i != array_length; ++i)
                          
            int min=a; 
                          
            int index = i; 
                          
            for(int j=i; j != array_length; ++j)
                                 
            if(a[j] < min)
                                 min
            =a[j]; 
                                 index 
            = j; 
                                 }
             
                          }
             
                          
            if(i != index)
                                 a 
            = a + a[index]; 
                                 a[index] 
            = a - a[index]; 
                                 a 
            = a - a[index]; 
                          }
             
                   }
             
            }
             
            int main()
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length = sizeof(a)/sizeof(*a); 
                   SelectSort(a, array_length); 
                   
            for(int i=0; i!=array_length; ++i) 
                          cout
            <<a<< "  "
                   
            return 0
            }
             
            //---------------------------------------------------------------------------- 
            //******************堆排序************************* 
            #include <iostream.h> 
            void HeapAdjust(int a[], int s, int m)
                   
            int rc = a[s-1]; 
                   
            for(int j=2*s; j <= m; j *= 2)
                          
            if(j < m && a[j-1< a[j]) 
                                 
            ++j; 
                          
            if(rc >= a[j-1]) 
                                 
            break
                          a[s
            -1= a[j-1]; 
                          s
            =j; 
                   }
             
                   a[s
            -1= rc; 
            }
             
            void HeapSort(int a[], int array_length)
                   
            for(int i = array_length/2; i>0--i) 
                          HeapAdjust(a, i, array_length); 
                   
            for(int j = array_length; j > 1--j)
                          a[
            0= a[0+ a[j-1]; 
                          a[j
            -1= a[0- a[j-1]; 
                          a[
            0= a[0- a[j-1]; 
                          HeapAdjust(a, 
            1, j-1); 
                   }
             
            }
             
            int main()
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12}
                   
            int array_length = sizeof(a)/sizeof(*a); 
                   HeapSort(a, array_length); 
                   
            for(int i=0; i!=array_length; ++i) 
                          cout
            <<a<< "  "
                   
            return 0
            }
             
            //------------------------------------------------------------- 
            //***********************歸并排序*********************** 
            void merge(int a[],int low,int middle,int high)
            {
                
            int h,i,j,k;
                
            int b[20];
                h
            =low;
                i
            =low;
                j
            =middle+1;
                
            while(h<=middle&&j<=high){
                          
            if(a[h]<=a[j]){
                        b
            =a[h];
                        h
            ++;
                          }

                          
            else{
                                 b
            =a[j];
                                 j
            ++;
                    }

                    i
            ++;
                }

                
            if(h>middle)
                
            for(k=j;k<=high;k++){
                          b
            =a[k];
                          i
            ++
                }

                
            else{
                          
            for(k=h;k<=middle;k++){
                                 b
            =a[k];
                                 i
            ++;
                    }

                }

                
            for(k=low;k<=high;k++)
                   
            {
                          a[k]
            =b[k];
                }

            }


            //歸并排序函數的具體實現
            void mergesort(int a[],int low,int high)
            {
                
            int middle;
                
            if(low<high){
                          middle
            =(low+high)/2;
                    mergesort(a,low,middle);
                    mergesort(a,middle
            +1,high);
                    merge(a,low,middle,high);
                }

            }


            int main(){
                   
            int a[]={56,23,48,25,84,15,35,69,87,12,54,28,37,19,47,12};
                   
            int array_length_a = sizeof(a)/sizeof(*a);
                   
            int b[]={0,0};
                   
            int array_length_b = sizeof(b)/sizeof(*b);
                   mergesort(a,
            0,15);
                   
            for(int i=0; i!=array_length_a; ++i)
                          cout
            <<a<< "  ";
                   cout
            <<endl;
                   
            return 0;
            }
             //------------------------------------------------------------- 
            posted on 2009-07-19 11:18 老馬驛站 閱讀(173) 評論(0)  編輯 收藏 引用 所屬分類: c++
            青春久久| 久久亚洲sm情趣捆绑调教 | 色欲综合久久躁天天躁蜜桃| 狠狠综合久久综合88亚洲| 99麻豆久久久国产精品免费 | 久久精品国产亚洲AV麻豆网站 | 亚洲人成伊人成综合网久久久 | 久久久久亚洲AV综合波多野结衣 | 亚洲乱亚洲乱淫久久| 亚洲日本va午夜中文字幕久久| 无码伊人66久久大杳蕉网站谷歌| 国产精品热久久无码av| 一本一道久久综合狠狠老| 欧美一区二区精品久久| 香蕉久久夜色精品升级完成| 久久www免费人成看国产片| 久久精品国产亚洲av影院| 久久久久亚洲AV成人网人人网站 | 国内精品久久久久久99蜜桃| 久久嫩草影院免费看夜色| 99久久成人国产精品免费| 久久狠狠爱亚洲综合影院| 国产精品久久久99| 久久精品国产半推半就| 热re99久久6国产精品免费| 日韩亚洲国产综合久久久| 伊人久久大香线蕉精品| 国内精品九九久久久精品| 亚洲欧美伊人久久综合一区二区| 久久免费视频6| 人妻无码久久精品| 久久久久国产精品麻豆AR影院| 四虎国产精品免费久久5151| 东方aⅴ免费观看久久av| 久久久久久免费视频| 综合久久一区二区三区 | 久久本道久久综合伊人| 51久久夜色精品国产| 九九99精品久久久久久| …久久精品99久久香蕉国产| 久久久亚洲欧洲日产国码aⅴ|