C++五种排序方法(有参考)

这篇博客探讨了C++中五种排序算法的实现,包括快速排序、堆排序、希尔排序、冒泡排序和选择排序。在测试中,使用了一亿个随机整数的数组,通过比较运行时间来评估效率。实验结果显示,快速排序的效率最高,其次是堆排序、希尔排序,接着是冒泡排序,而选择排序效率最低。
摘要由CSDN通过智能技术生成

快速排序、堆排序、希尔排序、冒泡排序、选择排序

数据结构选择:数组
概要设计:定义一个容量为一亿个整数的数组,定义变量n,用rand函数生成n个随机数,并赋值给数组,用clock函数计算排序所用时间。编写排序函数和主函数。

一、快速排序

#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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值