乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      六種內(nèi)排序

       印度阿三17 2019-05-31
      #include<iostream>
      #include<cstdlib>
      using namespace std;
      const int maxsize=105;
      struct sqlist{
      	int size;
      	int sq[maxsize];
      };
      
      void swap(sqlist *L,int i,int j){
      	int temp = L->sq[i];
      	L->sq[i] = L->sq[j];
      	L->sq[j] = temp;
      }
      
      void bubble_sort(sqlist *L){
      	cout<<"··冒泡排序··"<<endl;
      	int l=0,k=0; 
      	for(int i=1;i<L->size;i  )
      		for(int j=1;j<=L->size-i;j  ){
      			l  ;
      			if(L->sq[j]>L->sq[j 1]){
      				swap(L,j,j 1);
      				k =3;
      			}			
      		}
      	cout<<"冒泡排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"冒泡排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl; 
      }
      
      void insertion_sort(sqlist *L){
      	cout<<"··直接插入排序··"<<endl;
      	int l=0,k=0;
      	for(int i=2;i<=L->size;i  ){
      		l  ;
      		int temp=L->sq[i];
      		int j=i-1; 
      		while(temp<L->sq[j]&&j>0){
      			l  ;
      			L->sq[j 1]=L->sq[j];
      			k  ;
      			j--;
      		}
      		l  ;
      		L->sq[j 1]=temp;
      		k  ;
      	}
      	cout<<"直接插入排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"直接插入排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl;
      }
      
      void selection_sort(sqlist *L){
      	cout<<"··直接選擇排序··"<<endl;
      	int l=0,k=0;
      	for(int i=1;i<L->size;i  ){
      		int t;
      		t=i;
      		for(int j=i 1;j<=L->size;j  ){
      			l  ;
      			if(L->sq[t]>L->sq[j])
      				t=j;
      		}
      		if(t!=i){
      			swap(L,t,i);
      			k =3;
      		}	
      	}
      	cout<<"直接選擇排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"直接選擇排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl;
      }
      
      int Partition(sqlist *L,int low,int high,int &l,int &k){
          int pivotkey;
          pivotkey = L->sq[low];
          while(low<high)
          {
              while(L->sq[high] >= pivotkey && low<high ){
                  l  ;
                  high--;
              }
              l  ;
              swap(L,low,high);
              k =3;
              while(L->sq[low] <= pivotkey && low<high ){
                  l  ;
                  low  ;
              }
              l  ;
              swap(L,low,high);
              k =3;
          }
          return low;
      }
      
      void QSort(sqlist *L,int low,int high,int &l,int &k){
          int pivot;
          if(low<high){
              pivot = Partition(L,low,high,l,k);
              QSort(L,low,pivot-1,l,k);
              QSort(L,pivot 1,high,l,k);
          }
      }
      
      void quick_sort(sqlist *L){
      	cout<<"··快速排序··"<<endl;
      	int l=0,k=0;
      	QSort(L,1,L->size,l,k);
      	cout<<"快速排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"快速排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl;
      }
      
      void shell_sort(sqlist *L){
      	cout<<"··希爾排序··"<<endl;
      	int l=0,k=0;
      	int d;
      	d=L->size/2;
      	while(d>0){
      		for(int i=d 1;i<=L->size;i  ){
      			l  ;
      			int temp=L->sq[i];
      			int j=i-d; 
      			while(temp<L->sq[j]&&j>0){
      				l  ;
      				L->sq[j d]=L->sq[j];
      				k  ;
      				j-=d;
      		}
      		l  ;
      		L->sq[j d]=temp;
      		k  ;
      		}
      		d/=2;
      	} 
      	cout<<"希爾排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"希爾排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl;
      }
      
      void sift(sqlist *L,int low,int high,int &l,int &k){
      	int i=low,j=2*i;
      	int temp=L->sq[i];
      	while(j<=high){
      		l  ;
      		if(j<high&&L->sq[j]<L->sq[j 1])
      			j  ;
      		l  ;	
      		if(temp<L->sq[j]){
      			L->sq[i]=L->sq[j];
      			k  ;
      			i=j;
      			j=2*i;
      		}
      		else break;
      	}
      	L->sq[i]=temp;
      	k  ;
      }
      
      void heap_sort(sqlist *L){
      	cout<<"··堆排序··"<<endl;
      	int l=0,k=0;
      	for(int i=L->size/2;i>0;i--)
      		sift(L,i,L->size,l,k);
      	for(int i=L->size;i>=2;i--){
      		swap(L,1,i);
      		k =3;
      		sift(L,1,i-1,l,k);
      	}
      	cout<<"堆排序關(guān)鍵字的比較次數(shù)為:"<<l<<endl;
      	cout<<"堆排序關(guān)鍵字的移動(dòng)次數(shù)為:"<<k<<endl;
      }
      
      int main(){
      	//關(guān)鍵字:一個(gè)數(shù)據(jù)元素可由多個(gè)數(shù)據(jù)項(xiàng)組成,
      	//以數(shù)據(jù)元素某個(gè)數(shù)據(jù)項(xiàng)作為比較和排序依據(jù),則該數(shù)據(jù)項(xiàng)稱(chēng)為排序關(guān)鍵字。 
      	for(int i=0;i<5;i  ){
      		cout<<"第"<<i 1<<"次待排序的100個(gè)數(shù)為:"<<endl; 
      		sqlist L,L1,L2,L3,L4,L5,L6;
      		L.size=100;
      		for(int j=1;j<=100;j  ){
      			int t;
      			t=rand()0;
      			L.sq[j]=t;
      			cout<<L.sq[j]<<" ";
      		}
      		cout<<endl;
      		L1=L2=L3=L4=L5=L6=L;
      		bubble_sort(&L1);
      	//	for(int i=1;i<=100;i  )
      	//		cout<<L1.sq[i]<<" ";
      		insertion_sort(&L2); 
      	//	for(int i=1;i<=100;i  )
      	//		cout<<L2.sq[i]<<" ";
      		selection_sort(&L3); 
      	//	for(int i=1;i<=100;i  )
      	//		cout<<L3.sq[i]<<" ";
      		quick_sort(&L4); 
      	//	for(int i=1;i<=100;i  )
      	//		cout<<L4.sq[i]<<" ";
      		shell_sort(&L5);
      	//	for(int i=1;i<=100;i  )
      	//			cout<<L5.sq[i]<<" ";
      		heap_sort(&L6);
      	//	for(int i=1;i<=100;i  )
      	//		cout<<L6.sq[i]<<" ";
      	} 
      }
      
      來(lái)源:http://www./content-4-220551.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多