• 基本的排序


    下面我写了几种排序,还不全,有一些是学习其他博客的。大神那么多,奋起直追吧。还有就是不断的进行复习,熟练的掌握知识。

    1 .c++排序调用

    #include<algorithm>
    bool cmp(int a,int b){
        return a>b;
    }
    sort(a,n)//从小到大排序
    sort(a,n,cmp)//从到到小排序

    2.快速排序

    int partition(int *l,int low,int high) {
    	int temp=l[low];
    	
    	while (low <high) {
    		while (low<high&&l[high] >= temp) {
    			high--;
    		}
    		l[low] = l[high];
    		while (low<high&&l[low] <= temp) {
    			low++;
    		}
    		l[high] = l[low];
    
    	}
    	l[low] = temp;
    	return low;
    
    
    }
    void quicksort(int *l, int low, int high) {
    	int p;
    	if(low<high){
    		p = partition(l,low,high);
    		quicksort(l, low, p - 1);
    		quicksort(l, p + 1, high);
    	}
    }
    

    3.归并排序

    #define INF 0x3f3f3f3f
    void merge(int a[],int l,int mid,int r){
        int size1=mid-l+1;
        int size2=r-mid;
        int L[size1+1],R[size2+1];
        for(int i=0;i<size1;i++)
           { L[i]=a[l+i];}
    	for(int i=0;i<size2;i++)
    	{	R[i]=a[1+mid+i];}
    	L[size1]=INF;
    	R[size2]=INF;
    	int left=0,right=0;
        for(int k=l;k<=r;k++){
            if(L[left]<=R[right]){
    			a[k]=L[left];
    			left++;
    			
    		}else{
    			a[k]=R[right];
    			right++;
    		}
        }
        
    }
    void mergesort(int a[],int l,int r){
    	if(l<r){
    		int mid=(l+r)/2;
    		mergesort(a,l,mid);
    		mergesort(a,mid+1,r);
    		merge(a,l,mid,r);
    	}
    }
    

    4.插入排序

    void insertsort(int a[],int size){
        for(int i=1;i<size;i++){
                int temp=a[i];
                int j=i-1;
           while(j>=0&&temp<a[j]){
            a[j+1]=a[j];
            j--;
           }
           a[j+1]=temp;
        }
    
    }
    

    5. 冒泡排序

    void bubblesort(int a[],int size){
        int temp;
        for(int i=0;i<size;i++){
            for(int j=0;j<size-i-1;j++){
                if(a[j]>a[j+1]){
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
        
    }
    

    6.选择排序

    void selectsort(int a[],int size){
       
        for(int i=0;i<size-1;i++){
            int minindex=i;
            for(int j=i+1;j<size-1;j++){
                if(a[j]<a[minindex]){
                    minindex=j;
                }
                
            }
            if(a[i]>a[minindex]){
                int temp=a[i];
                a[i]=a[minindex];
                a[minindex]=a[i];
            }
        }
            
    }
    

      

  • 相关阅读:
    iOS CoreData使用笔记
    iOS UIWebView中添加手势
    Swift sha1 md5加密
    Swift用block响应UIAlertView和UIActionSheet的按钮点击事件
    iOS判断iPhone型号
    iOS Document Interaction 编程指南
    Swift项目开发中缓存计算以及清除
    SVN 一次性提交多个目录中文件
    svn 相关
    sublime text 2相关
  • 原文地址:https://www.cnblogs.com/zfc888/p/10156239.html
Copyright © 2020-2023  润新知