类型不说了
#include<iostream>
#include <ctime>
#include<cstdlib>
#include<vector>
using namespace std;
void max_heapify(vector<int> &nums, int beg, int end)
{
int curr = beg;
int child = curr * 2 + 1;
while (child < end) {
if (child + 1 < end &&nums[child] < nums[child + 1])
child++;
if (nums[curr] < nums[child]) {
swap(nums[curr], nums[child]);
curr = child;
child = 2 * curr + 1;
}
else
break;
}
}
void heap_sort(vector<int> &nums)
{
int n = nums.size();
for (int i = n / 2 + 1; i >=0; i--)
{
max_heapify(nums, i, nums.size() - 1);
}
for (int i = n - 1; i > 0; i--)
{
swap(nums[0], nums[i]);
max_heapify(nums, 0, i);
}
}
int a[100000000],n;
int main()
{
cin >>n;
for (int c=0;c<n;c++)
{
a[c]=rand();
}
int begintime=clock();
vector<int> vec(a,a+n);
heap_sort(vec);
int endtime = clock();
cout<<endtime-begintime<<"m"<<endl;
for(int d=0;d<n;d++)
{
cout<<vec[d]<<" ";
}
return 0;
}
#include<iostream>
#include <ctime>
#include<cstdlib>
using namespace std;
int a[100000000],n;
void partition(int A[],int s, int t, int& cutpoint)
{
int x=A[s];
int i=s,j=t;
while(i!=j){
while(i<j&&A[j]>x)
j--;
if(i<j)
{
A[i]=A[j];
i++;
}
while(i<j&&A[i]<x)
i++;
if(i<j)
{
A[j]=A[i];
j--;
}
}
A[i]=x;
cutpoint=i;
}
void quicksort(int A[],int s,int t)
{
int f;
if(s<t)
{
partition(A,s,t,f);
quicksort(A,s,f-1);
quicksort(A,f+1,t);
}
}
int main()
{
cin >>n;
for (int c=0;c<n;c++)
a[c]=rand();
int begintime=clock();
quicksort(a,0,n-1);
int endtime = clock();
cout<<endtime-begintime<<"ms"<<endl;
for(int d=0;d<n;d++)
{
cout<<a[d]<<" ";
}
return 0;
}
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int a[100000000],n;
int main()
{
int temp;
cin >>n;
for (int i=0;i<n;i++)
{
a[i]=rand();
}
int begintime=clock();
for (int i=0;i<n;i++)
{
for (int j=i+1;j<n;j++)
{
if (a[i]>a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
int endtime = clock();
cout<<endtime-begintime<<"ms"<<endl;
for (int c=0;c<n;c++)
{
cout << a[c] <<" " ;}
return 0;
}