c语言折半查找法_C语言学习|选择法排序及折半查找法查找

72234c28986ad0b8e31b804b2003ff81.png
0accf6e138e64d7e34391b49552aa3ae.png

数组名作为函数参数示意图

交换法排序,读者只要仔细研究一下这个算法就不难发现,其排序效率较低。因为在第i轮(i=0,1,2……,n-2)比较中,第i+1个数和后面所有的数都要进行一次比较,每进行一次比较,若后面的数大就交换位置,这样每轮比较中最多需要n-1次交换操作,从而导致需要交换的次数太多。

事实上,完全可以在找出余下的数中的最大值再与第i+1个数交换位置,这样每轮比较中最多只有一次交换操作,整个算法最多有n-1次交换操作。虽然比较操作未能减少,但交换操作可以从总体上减少,这种改进的算法称为选择法排序。

按选择法进行排序的过程如图所示:

8f8167cd639519bf8160939cd75f9e3e.png

选择法排序示意图

设计一个函数对实型数组score中的n个学生成绩降序排序:

#include

#defineARR 100

void sort(float score[],long num[],int n);

int main()

{

float score[ARR];

long num[ARR];

int n,i;

printf("Pleaceentertotal number:");

scanf("%d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值