• <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++
            久久久一本精品99久久精品88| 免费一级欧美大片久久网| 国产99久久九九精品无码| 国产精品热久久毛片| 午夜精品久久久内射近拍高清| 久久午夜无码鲁丝片| 国产L精品国产亚洲区久久| 久久播电影网| 久久最新精品国产| 一本色道久久综合| 久久亚洲国产欧洲精品一 | 国内精品综合久久久40p| 99久久精品免费看国产一区二区三区 | 久久久国产精华液| 久久国产精品99久久久久久老狼| 久久99九九国产免费看小说| 久久久精品免费国产四虎| 亚洲v国产v天堂a无码久久| MM131亚洲国产美女久久| 中文字幕乱码久久午夜| 久久国产一片免费观看| 精品久久久久久无码中文字幕| 国内精品久久久久影院老司| 国产精品一区二区久久精品无码| 少妇久久久久久久久久| 欧美亚洲色综久久精品国产| 久久久久久久久久久免费精品| 久久精品国产精品国产精品污| 色偷偷88888欧美精品久久久| 久久久久久久91精品免费观看| 久久AⅤ人妻少妇嫩草影院| 久久精品国产一区二区三区日韩| 欧美午夜精品久久久久免费视| 狠狠精品久久久无码中文字幕| 少妇人妻综合久久中文字幕| 亚洲欧洲久久久精品| 超级碰碰碰碰97久久久久| 久久综合色老色| 欧美日韩精品久久久免费观看| 久久婷婷国产剧情内射白浆| 亚洲精品tv久久久久久久久|