⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 快速排序.cpp

📁 c++算法的很经典的一些小练习 看了 觉得还可以 给大家分享一下!
💻 CPP
字号:
#include<stdio.h>

int N=3;
typedef struct{
	 char name[20];
	 int score;
	 }snode;

int partition(snode *r,int i,int j);
void quicksort(snode *r,int low,int high);
void outlist(snode* r);

main(){  
	int i;
	snode *r;
	printf("输入所要排序的元素的数目N=");
	scanf("%d",&N);
	r=new snode[N+1];
	printf("input score:");
	for(i=1;i<N+1;i++)
		scanf("%d",&r[i].score);
	quicksort(r,1,N);
	outlist(r);
	delete[]r;
}

int partition(snode *r,int i,int j){
	snode pivot=r[i];
	while(i<j){
		while(i<j&&r[j].score>=pivot.score) j--;
		if(i<j)r[i++]=r[j];
		while(i<j&&r[i].score<=pivot.score) i++;
		if(i<j)r[j--]=r[i];
	}
	r[i]=pivot;
	return i;
}
void quicksort(snode *r,int low,int high){ 
	int pivotpos;
	if(low<high){
		pivotpos=partition(r,low,high);
		quicksort(r,low,pivotpos-1);
		quicksort(r,pivotpos+1,high);
	}
}
void outlist(snode* r){ 
	int i;
	printf("排序后:\n");
	for(i=1;i<=N;i++)
		printf("%d,",r[i].score);
	printf("\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -