sort_quick.cpp

来自「自己编写的排序算法的代码」· C++ 代码 · 共 79 行

CPP
79
字号
#include <fstream.h>
#include "data.h"

//划分区间
int Partition(int a[],int low,int high)
{
	int i,j;
	i=low-1;
	for(j=low;j<high;j++)
	{
		if(a[j]<=a[high])
		{
			i++;
            Change(a,i,j);
		}
	}
	i++;
	Change(a,i,high);
	return i;
}
//快速排序
void Quick(int a[],int low,int high)
{
	int q;
	if(low<high)
	{
		q=Partition(a,low,high);
		Quick(a,low,q-1);
	    Quick(a,q+1,high);
	}
}
///////////////////////////////
void Quick_Sort(int a[])
{
	int l,h;
	l=0;
	h=number-1;
	Quick(a,l,h);   
}

//////////////测试用//////////////
int Partition2(int a[],int low,int high)
{
	int i,j;
	i=low-1;
	for(j=low;j<high;j++)
	{
		if(a[j]<a[high])             //这里把<=改成了< 减少了内存中的数据移动
		{
			i++;
            Change(a,i,j);
		}
	}
	i++;
	Change(a,i,high);
	return i;
}
//快速排序
void Quick2(int a[],int low,int high)
{
	int q;
	if(low<high)
	{
		q=Partition2(a,low,high);
		Quick2(a,low,q-1);
	    Quick2(a,q+1,high);
	}
}
///////////////////////////////
void Quick_Sort2(int a[])
{
	int l,h;
	l=0;
	h=number-1;
	Quick2(a,l,h);   
}


⌨️ 快捷键说明

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