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;


    }

  • 相关阅读:
    每天一篇经济学人 2020-09-15 分享在 特朗普的“疫苗政治”:科学与政治之争 | 经济学人
    english notes
    new word
    gilbert strang
    news etc
    对自己的要求
    JDBC添加数据
    题目-1031-字符串反转
    题目-1002-字符串分类统计
    ERROR:格式化hdfs后,datanode只启动了一个
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/1561496.html
Copyright © 2011-2022 走看看