• <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 老馬驛站 閱讀(168) 評論(0)  編輯 收藏 引用 所屬分類: c++
            久久久亚洲欧洲日产国码aⅴ| 国产一久久香蕉国产线看观看| 久久久精品久久久久久| 久久涩综合| 国产麻豆精品久久一二三| 国产精品99久久不卡| 伊人久久大香线蕉精品不卡 | 久久精品国产一区二区三区不卡| 国内精品久久久久久麻豆| 亚洲精品高清一二区久久| …久久精品99久久香蕉国产| 精品久久人人妻人人做精品| 中文字幕热久久久久久久| 国产女人aaa级久久久级| 亚洲国产精品无码久久久秋霞2| 久久久久亚洲AV成人网人人网站 | 久久午夜夜伦鲁鲁片免费无码影视| 三上悠亚久久精品| 欧美久久久久久精选9999| 精品久久久久久亚洲精品| 中文字幕精品久久久久人妻| 亚洲嫩草影院久久精品| 亚洲AV日韩精品久久久久久| 久久人做人爽一区二区三区| 久久久久这里只有精品 | 日韩久久久久中文字幕人妻 | 午夜肉伦伦影院久久精品免费看国产一区二区三区| 久久综合精品国产二区无码| 婷婷国产天堂久久综合五月| 国产精品免费久久久久影院| 国产精品成人久久久久三级午夜电影| 久久狠狠爱亚洲综合影院| 久久影视综合亚洲| 四虎影视久久久免费| 精品久久久无码中文字幕| 久久久久国产一级毛片高清板| 久久国产精品成人免费| AAA级久久久精品无码区| 久久久久国产日韩精品网站| 久久久久97国产精华液好用吗| 久久国产成人精品国产成人亚洲|