快速排序通用程序

使用说明

该程序段适用于比较几个整数的大小,既可以升序亦可降序。

详细操作请看下文。


一、排序自定义函数

void quicksort(int q[], int l, int r)
{
	if (l >= r) return;
	int x = q[(l + r) >> 1], i = l - 1, j = r + 1;
	while (i < j)
	{
		do i++; while (q[i] < x);
		do j--; while (q[j] > x);
		if (i < j) {
			int temp = q[i];
			q[i] = q[j], q[j] = temp;
		}
	}
	quicksort(q, l, j);
	quicksort(q, j + 1, r);
}

二、使用步骤(例题)

1.步骤

代码如下:

#include<stdio.h>

void quicksort(...)

{

        ...

}

int main()

{

        int ...;

        scanf("...");

        quicksort(...);

        ...

        printf("...");

        return 0;

}

2.例题

例:输入六个整数,要求:

1)按照从大到小的顺序排列

2)再按照从小到大的顺序排列

代码如下:

#include <stdio.h>

void quicksort(int q[], int l, int r)
{
    if (l >= r) return;
    int x = q[(l + r) >> 1], i = l - 1, j = r + 1;
    while (i < j)
    {
        do i++; while (q[i] < x);
        do j--; while (q[j] > x);
        if (i < j) {
            int temp = q[i];
            q[i] = q[j], q[j] = temp;
        }
    }
    quicksort(q, l, j);
    quicksort(q, j + 1, r);
}
int main() {
    int q[6];
    printf("请输入6个整数:");
    scanf("%d %d %d %d %d %d", &q[0], &q[1], &q[2], &q[3], &q[4], &q[5]);
    quicksort(q, 0, 5);
    printf("从大到小的排列顺序为: %d %d %d %d %d %d\n", q[5], q[4], q[3], q[2], q[1], q[0]);
    printf("从小到大的排列顺序为: %d %d %d %d %d %d\n", q[0], q[1], q[2], q[3], q[4], q[5]);
    return 0;
}

运行结果:


总结

        以上就是今天要讲的快速排序的内容,本文仅仅简单介绍了利用数组快速排序的使用,而该程序提供了使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值