zoukankan      html  css  js  c++  java
  • 交换排序

    冒泡排序

    void BubbleSort(int A[],int n) {
        int i,j;
        for(i=0; i<n-1; i++) {
            bool flag=false;//表示本趟冒泡是否发生交换的标志 
            for(j=n-1; j>i; j--) {//一趟冒泡的过程 
                if(A[j-1]>A[j]) {//若为逆序 
                    swap(A[j-1],A[j]);//交换 
                    flag=true;
                }
    
            }
            if(flag==false)//本趟遍历后没有发生交换,说明表已经有序 
                return;
    
        }
    
    }

    快速排序

    int Partition(int A[],int low,int high)
     {
         int pivot=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]=pivot;//中枢元素存放最终的位置
         return low;//返回存放中枢的最终位置
     }
    void QuickSort(int A[],int low,int high)
    {
        if(low<high)//递归跳出的条件
        {
            int pivotpos=Partition(A,low,high);//划分操作
            QuickSort(A,low,pivotpos-1);//对两个子表进行递归排序
            QuickSort(A,pivotpos+1,high);
        }
     }
  • 相关阅读:
    FTP与HTTP上传文件的对比
    【FTP】Wireshark学习FTP流程
    【CSS】div
    浏览器URL中“#” “?” &“”作用
    【EF】vs2017中没有EF模型
    C# List的使用
    C# Dictionary使用
    Git/GitHub的一些问题
    PHP中的break与continue
    css使文字垂直水平居中
  • 原文地址:https://www.cnblogs.com/tianyudizhua/p/13414461.html
Copyright © 2011-2022 走看看