Series of Sort
本文最后更新于 2120 天前,其中的信息可能已经有所发展或是发生改变。

冒泡排序

void bubble_sort(int *a, int n)
{
	int temp;
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<n-1;j++)
		{
			if(a[j]<j[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
}

快速排序

void quick_sort(int *a, int left, int right)
{
	int j, i, tem;
	
	
	//左标不能大于右标
	if(left>right)
	{
		return;
	}
	
	//从左开始第一个作为参考值
	tem = a[left];
	i = left;
	j = right;
	
	//左右两边未相遇时,持续交换
	while(j!=i)
	{
		//右边比参考大,说明位置不正确,停下等待交换
		while(a[j]>=tem)
		{
			j--;
		}

		//左边比参考小,说明位置不正确,停下等待交换
		while(a[i]<=tem)
		{
			i++;
		}
		//右边不能超过右边
		if(j>i)
		{
			//将两个位置不正确的值交换位置
			a[j] = a[i];
			a[i] = tem;
		}
	
	}
	//递归处理子数组
	quick_sort(a, left, j+1);
	quick_sort(a, i+1, right);
}

 

 

上一篇
下一篇