• <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++
            一本久久a久久精品综合夜夜| 91精品国产9l久久久久| 久久综合久久自在自线精品自| 久久99精品久久久久久噜噜| 国产精品18久久久久久vr | 亚洲天堂久久久| 久久精品国产一区二区三区不卡| 国产精品久久久久久| 狠狠久久亚洲欧美专区| 久久成人影院精品777| 久久久久AV综合网成人| 久久亚洲精品成人AV| 97久久精品午夜一区二区| 亚洲AV无码久久精品成人| 伊人久久大香线蕉AV一区二区| 一本大道久久香蕉成人网| 怡红院日本一道日本久久 | 无码人妻久久久一区二区三区| 狠狠色婷婷久久一区二区| 色欲久久久天天天综合网精品| 99久久免费国产特黄| 国产精品内射久久久久欢欢| 久久无码一区二区三区少妇| 久久国产免费直播| 国内精品伊人久久久久av一坑| 1000部精品久久久久久久久| 久久久久国产一级毛片高清版| 日日狠狠久久偷偷色综合免费 | 7777精品久久久大香线蕉| 久久久老熟女一区二区三区| 亚洲国产精品久久久久婷婷老年| 久久精品国产第一区二区| 精品多毛少妇人妻AV免费久久 | 久久99国产一区二区三区| 一级a性色生活片久久无| 国产成人无码久久久精品一| 久久久噜噜噜久久中文字幕色伊伊| 人妻无码αv中文字幕久久琪琪布| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产72国产精福利| 久久综合亚洲欧美成人|