#include<iostream>
#include<time.h>
using namespace std;
const int N=100000;
//int arr[N];
void sort(int arr[],int l,int u)
{
if(l>=u)
return;
int i=l,j=u;
///能够使得本已经是顺序排序的快速排好
srand(time(NULL));
int randint=rand()%(u-l)+l;
swap(arr[l],arr[randint]);
int flag=arr[l];
while(i<j)
{
while((i<j)&&arr[j]>flag)//这里是用>号,因为如果是>=的话,在都是相等的数字的话,会使得j变成-1,这样就会出现错误
j--;
if(i<j)
arr[i++]=arr[j];
while((i<j)&&arr[i]<flag)
i++;
if(i<j)
arr[j--]=arr[i];
}
arr[i]=flag;
sort(arr,l,i-1);
sort(arr,i+1,u);
}
int main()
{
int arr[N];
srand(time(NULL));
for(int i=0;i<N;i++)
{
arr[i]=10;
//cout<<arr[i]<<" ";
}
cout<<endl;
sort(arr,0,N-1);
int err=0;
// for(int i=0;i<N;i++)
//{
// cout<<arr[i]<<" ";
//}
//cout<<endl;
for(int i=0;i<N-1;i++)
if(arr[i]>arr[i+1])
err++;
cout<<err<<endl;
return 0;
}
#include<time.h>
using namespace std;
const int N=100000;
//int arr[N];
void sort(int arr[],int l,int u)
{
if(l>=u)
return;
int i=l,j=u;
///能够使得本已经是顺序排序的快速排好
srand(time(NULL));
int randint=rand()%(u-l)+l;
swap(arr[l],arr[randint]);
int flag=arr[l];
while(i<j)
{
while((i<j)&&arr[j]>flag)//这里是用>号,因为如果是>=的话,在都是相等的数字的话,会使得j变成-1,这样就会出现错误
j--;
if(i<j)
arr[i++]=arr[j];
while((i<j)&&arr[i]<flag)
i++;
if(i<j)
arr[j--]=arr[i];
}
arr[i]=flag;
sort(arr,l,i-1);
sort(arr,i+1,u);
}
int main()
{
int arr[N];
srand(time(NULL));
for(int i=0;i<N;i++)
{
arr[i]=10;
//cout<<arr[i]<<" ";
}
cout<<endl;
sort(arr,0,N-1);
int err=0;
// for(int i=0;i<N;i++)
//{
// cout<<arr[i]<<" ";
//}
//cout<<endl;
for(int i=0;i<N-1;i++)
if(arr[i]>arr[i+1])
err++;
cout<<err<<endl;
return 0;
}