数据结构!急!

2023-01-19 01:05

设有n个学生成绩(0-100整数)的顺序结构线性表L,编写函数,将该线性表中调整为成绩及格(大于等于60)在不及格之前,要求T(n)=O(n), S(n)=O(1)。先给出算法思想,再写出相应代码。
2个回答

用二重的循环就可实现。用i指向前元素,用j指向后元素,当不需要交换时i,j相向移动。移动结束时若i,j未交错就交换a[i]与a[j]一轮大循环结束时i与j再向后,向前移动一位,直到i,j交错为止。最后输出数组中的全部元素。
#include
int main()
{ int n,i,j,t,a[100];
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]);
for(i=0,j=n-1;i {while(a[i]>=60)i++;
while(a[j]<60)j--;
if(i {t=a[i];a[i]=a[j];a[j]=t;}
}
for(i=0;i printf("%d ",a[i]);
return 0;
}

很简单,只要把不及格的丢到后面,交换一个及格的回来就行了。

具体点就是,先从右往左扫找到一个错误地丢在后排的及格的,再从左往右(或者说从前往后)扫一个错误地丢在前排的不及格的,互换;这时候最左边最右边肯定都符合了。继续这么扫,交换那些呆错地方的东西,就行了。

其实跟快速排序的思路有点像,题主感兴趣可以去看看。

#include

#include

int main()

{

    int N;scanf("%d",&N);

int a[N];

    for(int i=0;i


    int lst=N-1;

    while(a[lst]<60)--lst;

    for(int i=0;i

    {

        if(a[i]<60)

{

int temp=a[i];a[i]=a[lst];a[lst]=temp;

 while(a[lst]<60)--lst;

}

    }


    for(int i=0;i

}

相关问答
一些数据结构题 求高手解答
1个回答2022-08-17 09:36
才这么点分数啊
求解数据结构题!
1个回答2022-12-26 10:46
无正规算术随便计算
大学数据库 数据结构的书
1个回答2024-03-16 17:09
数据结构好像有C++版本的,以前我读的是C版本的,应该不难。数据库的话,既然搞C++,我觉得你可以考虑mysql
数据结构问题,帮帮忙
1个回答2022-08-24 16:05
看到头疼~~~呵呵
数据库表的物理结构是什么?
1个回答2023-05-28 18:32
就是表的定义结构
小说的构思怎么构思呢,还有小说怎么就不根据现实就可以来写,或者根据任的思维怎么构思?
1个回答2022-11-24 03:54
你是想写小说吗?构思是要看你自己对你想要写的小说里的故事,大概的一个想法。写小说的话,当然要想象力丰富点。
数据结构?
1个回答2022-06-24 16:06
所有的算法,乃至数学在实际运用中都是要根据不同的数据来选择不同的方法,所以一般学习过算法和数据结构的人都会越发的认识到,数据才是程序的中心,只有找到了一个组织数据的最佳方式,算法的运用才会事半功倍。一...
全文
数据结构中的->什么意思
1个回答2022-08-24 02:42
通过指针来引用某个变量或方法,其实就是指针符号
数据结构: 是什么?
1个回答2022-08-17 23:53
数据结构是什么?数据和结构有什么关系?数据结构首先要定义两个东西,一个是数据,一个是结构.数据是一组有意义的信息.把数据作为信息单元.结构,就是信息单元和信息单元之间的构成关系.构成关系以最抽象的形式...
全文
数据结构?
1个回答2022-06-30 04:13
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。