Tres algoritmos de clasificación de uso común, clasificación de burbujas, clasificación de funciones de biblioteca y clasificación rápida (principiante para principiantes ~~) (otros algoritmos de clasificación se actualizarán más adelante ~)

Si te ayuda, por favor dame una "florecita roja" ~~

#include<iostream>
#include<string.h> 
#include<algorithm>//sort函数头文件 
using namespace std;
//以下算法皆以从小到大排序
 
int mp(int *p)//冒泡排序,最常用的较为稳定的排序算法 
{
    
    
	int temp;//临时变量用来交换两个数的位置 
	for(int i=0;i<10;i++)//控制到几轮冒泡 
	  for(int j=0;j<10-i-1;j++)//控制从第几个数开始排序 
	  {
    
    
	  	if(p[j]>p[j+1])//交换位置,完成起泡 
		  {
    
    
		  	temp=p[j+1];
		  	p[j+1]=p[j];
		  	p[j]=temp;
		   } 
	  }
	for(int i=0;i<10;i++)
	  cout<<p[i]<<" ";
	cout<<endl;
	return 0;
 } 

int sort1(int *p)//c++自带库函数sort排序,在没有规定的时候,此算法效率最高,特别是数特别多的时候 
{
    
    
	sort(p,p+10);
	for(int i=0;i<10;i++)
	  cout<<p[i]<<" ";
	cout<<endl;
	return 0;
 } 

int qsort(int *p,int start,int end) //快速排序 
{
    
    
	int i=start,j=end;//临时变量存当前start和end所处的位置
	int base=p[0];//设置一个基准数 
	if(start<end)
	{
    
    
	while(i<j)
	{
    
    
		while(i<j&&p[j]>=base)// 从右向左找第一个小于x的数
		  j--;
		if(i<j)
		p[i++]=p[j];
		while(i<j&&p[i]<base)// 从左向右找第一个大于等于x的数
		  i++;
		if(i<j)
		p[j--]=p[i];  
	}
	p[i]=base;
	qsort(p,start,i-1);//递归进行排序 
	qsort(p,i+1,end);
	} 
}

int main()
{
    
    
	int p[10]={
    
    1,25,13,68,384,27,39,54,18,222};
	cout<<"冒泡排序结果:"<<endl;
	mp(p);
	cout<<"c++库函数排序结果:"<<endl;
	sort1(p);
	cout<<"快排排序结果:"<<endl;
	qsort(p,0,0);
	for(int i=0;i<10;i++)
	  cout<<p[i]<<" ";
 } 
``

Supongo que te gusta

Origin blog.csdn.net/m0_55233347/article/details/115306530
Recomendado
Clasificación