zoukankan      html  css  js  c++  java
  • 快速排序算法的实现

    #include<iostream>
    #include<math.h>
    #include<time.h>
    #include<stdlib.h>
    using namespace std;
    //产生(begin,end)区间的随机数
    int myrand(int begin,int end)

     srand(unsigned(time(NULL)));
        int i=(rand() % (end-begin+1))+begin;
     
     
     return i;

    }

    //交换两个数
    void swap(int &a,int& b)
    {
     int temp=a;
     a=b;
     b=temp;

    }
     
    //找到分割点
    int Partition(int *a,int begin,int end)
    { void print(int *a,int n);
     int i=begin-1;
     int x=a[end];
     for(int j=begin;j<end;j++)
     {
      if(a[j]<=x)
      {
       i++;
       swap(a[i],a[j]);
      }
     
     }
     swap(a[i+1],a[end]);
     return i+1;
    }


    //随机找到分割点

    int Randomized_Partition(int *a,int begin,int end)
    {  void print(int *a,int n);
       int i=myrand(begin,end);
        swap(a[i],a[end]);
     
       return Partition(a,begin,end);

    }
    //快速排序随机算法
    void Randomized_QuickSort(int *a,int begin,int end)
    {
     if (begin<end)
     {
     int q=Randomized_Partition(a,begin,end);
         //int q=Partition(a,begin,end);

      Randomized_QuickSort(a,begin,q-1);
      Randomized_QuickSort(a,q+1,end);
     }

    }
    void print(int *a ,int n)
    {
     for(int k=0;k<n;k++)
     {
      cout<<a[k]<<" ";
     }
     cout<<"\n";
    }

    int  main()
    {  
     int a[7]={6,4,2,9,1,10,0};
     Randomized_QuickSort(a,0,6);
     /*int j= Randomized_Partition(a,0,6);
     print(a,7);
     cout<<j<<endl;*/
     print(a,7);
     int k;
     cin>>k;


    }

  • 相关阅读:
    手机浏览器的viewport(视觉窗口)
    google开源了google chrome android
    Yii 直接执行SQL语句(转)
    WebKit学习网址收集
    Yii CDbCriteria的常用方法
    现货黄金入门知识普及一:图形分析之K线理论
    java 获取当前函数名
    yii url生成
    android 判断屏幕是否关闭
    yii yiiplayground
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/1561496.html
Copyright © 2011-2022 走看看