排序算法专题:quickSort,choose,bubble

1、快速排序(升序)

void quickSort(int sort[], int m, int n)
{
	int k, t, i, j;

	if (m < n)
	{
		i = m;
		j = n + 1;
		k = sort[m];
		while (i < j)
		{
			for (i = i + 1; i < n; i++)
				if (sort[i] >= k)
					break;
			for (j = j - 1; j > m; j--)
				if (sort[j] <= k)
					break;
			if (i < j)
			{
				t = sort[i];
				sort[i] = sort[j];
				sort[j] = t;
			}
		}

		t = sort[m];
		sort[m] = sort[j];
		sort[j] = t;
		quickSort(sort, m, j - 1);
		quickSort(sort, i, n);
	}
}

2、选择排序法(升序)

void choose (int a[], int n)  		//  a[]是指针、等价*p,n是数组a中待排序元素的数量 
{
    int  i, j, index, temp;
    for( i = 0; i < n-1; i++)		//
	{
		index = i ;
        for (j = i + 1; j < n; j++ )	
            if (a[j] < a[index])	index = j ;	// 比较大小,记录最小元素的下标  
		
		temp   	 = a[index] ;				// 剩余元素的最小值跟最靠前的元素交换
		a[index] = a[i] ;
		a[i]     = temp ;		
	}
}

3、冒泡排序法(升序)

void bubble (int a[] , int n)		// a[]是指针、等价*p,n是数组a中待排序元素的数量
{
	int  i , j , temp ;
	for(i=0; i<n-1; i++)
	    for(j=0; j<(n-1)-i; j++)
			if(a[j] > a[j+1])		// 后面的元素比较大
			{	
				temp  = a[j];
				a[j]  = a[j+1];
				a[j+1]= temp;		
			}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值