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

📄 快速排序.cpp

📁 快速排序程序
💻 CPP
字号:
#include "ss_def01.h"
/*-----------------------------------------------------
  上机要求:用第2章的顺序表结构实现下面算法
  

-----------------------------------------------------*/
   
/*----------快速排序-----------*/
void QuickSort(listtype *list,int low,int high)
{
/*list为待排序的顺序表,low,high分别为待排序表的下界和上界*/
	int i,j;
	if(low<high)
	{
		i=low;
		j=high;
		list->data[0]=list->data[i];
		do
		{
			while(list->data[0]<=list->data[j] && i<j)
				j--;
			if(i<j)
			{
				list->data[i]=list->data[j];
				i++;
			}
			while(list->data[i]<=list->data[0] && i<j)
				i++;
			if(i<j)
			{
				list->data[j]=list->data[i];
				j--;
			}
		}while(i<j);
		list->data[i]=list->data[0];
		i++;
		j--;
		if(low<j)
			QuickSort(list,low,j);
		if(i<high)
			QuickSort(list,i,high);
	}
	
}

main()
{
 
 	listtype *mylist01;
	int key,loc;

	mylist01=(listtype *)malloc(sizeof(listtype));
 	initiatelist(mylist01);		/*初始化表*/
	make10(mylist01);		/*向表中随机插入10个元素*/

 	printf("\n-------------4.1 result-------------\n");
 	printf("At first,the list is:\n");
	ptlist(mylist01);           	/*打印出表的元素*/


	QuickSort(mylist01,1,mylist01->length);	/*快速排序*/
	
 	printf("快速排序后 ,the list is:\n");
	ptlist(mylist01);           /*打印出表的元素*/

}

⌨️ 快捷键说明

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