數(shù)據(jù)結(jié)構(gòu)!急!

2023-01-19 01:05

設(shè)有n個學生成績(0-100整數(shù))的順序結(jié)構(gòu)線性表L,編寫函數(shù),將該線性表中調(diào)整為成績及格(大于等于60)在不及格之前,要求T(n)=O(n), S(n)=O(1)。先給出算法思想,再寫出相應(yīng)代碼。
2個回答

用二重的循環(huán)就可實現(xiàn)。用i指向前元素,用j指向后元素,當不需要交換時i,j相向移動。移動結(jié)束時若i,j未交錯就交換a[i]與a[j]一輪大循環(huán)結(jié)束時i與j再向后,向前移動一位,直到i,j交錯為止。最后輸出數(shù)組中的全部元素。
#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;
}

很簡單,只要把不及格的丟到后面,交換一個及格的回來就行了。

具體點就是,先從右往左掃找到一個錯誤地丟在后排的及格的,再從左往右(或者說從前往后)掃一個錯誤地丟在前排的不及格的,互換;這時候最左邊最右邊肯定都符合了。繼續(xù)這么掃,交換那些呆錯地方的東西,就行了。

其實跟快速排序的思路有點像,題主感興趣可以去看看。

#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

}

相關(guān)問答
一些數(shù)據(jù)結(jié)構(gòu)題 求高手解答
1個回答2022-08-17 09:36
才這么點分數(shù)啊
求解數(shù)據(jù)結(jié)構(gòu)題!
1個回答2022-12-26 10:46
無正規(guī)算術(shù)隨便計算
數(shù)據(jù)結(jié)構(gòu)求大神指點
1個回答2024-09-05 23:16
創(chuàng)建一個臨時數(shù)組,長度等于原數(shù)組 用一指針i指向原數(shù)組頭部,一指針j指向原數(shù)組尾部,i向后掃描,碰到負數(shù)則從前往后將其依次放入臨時數(shù)組中;j向前掃描,碰到正數(shù)則將其從后往前依次放入臨時數(shù)組中。當i到達...
全文
大學數(shù)據(jù)庫 數(shù)據(jù)結(jié)構(gòu)的書
1個回答2024-03-16 17:09
數(shù)據(jù)結(jié)構(gòu)好像有C++版本的,以前我讀的是C版本的,應(yīng)該不難。數(shù)據(jù)庫的話,既然搞C++,我覺得你可以考慮mysql
數(shù)據(jù)庫表的物理結(jié)構(gòu)是什么?
1個回答2023-05-28 18:32
就是表的定義結(jié)構(gòu)
考研數(shù)據(jù)結(jié)構(gòu)用哪本書
1個回答2024-08-18 23:55
考研數(shù)據(jù)結(jié)構(gòu)可以用《數(shù)據(jù)結(jié)構(gòu)》《算法與數(shù)據(jù)結(jié)構(gòu)考研試題精析(第2版)》《數(shù)據(jù)結(jié)構(gòu)習題與解析》等書。 1、《數(shù)據(jù)結(jié)構(gòu)》 清華大學嚴蔚敏的這本數(shù)據(jù)結(jié)構(gòu)的教材是國內(nèi)數(shù)據(jù)結(jié)構(gòu)教材的權(quán)威。也是國內(nèi)使...
全文
數(shù)據(jù)結(jié)構(gòu)問題,幫幫忙
1個回答2022-08-24 16:05
看到頭疼~~~呵呵
小說的構(gòu)思怎么構(gòu)思呢,還有小說怎么就不根據(jù)現(xiàn)實就可以來寫,或者根據(jù)任的思維怎么構(gòu)思?
1個回答2022-11-24 03:54
你是想寫小說嗎?構(gòu)思是要看你自己對你想要寫的小說里的故事,大概的一個想法。寫小說的話,當然要想象力豐富點。
數(shù)據(jù)結(jié)構(gòu)是什么意思?
3個回答2023-02-16 21:50
簡單的說就是數(shù)據(jù)以及相互之間的聯(lián)系。數(shù)據(jù)之間的相互聯(lián)系,被稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。數(shù)據(jù)在存儲器重的存儲方式稱為數(shù)據(jù)的物理結(jié)構(gòu)。由于存儲方式有順序、鏈接、索引、散列等多種方式。所以一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)應(yīng)用的...
全文
數(shù)據(jù)結(jié)構(gòu)是什么?
1個回答2023-02-09 02:26
定義一、數(shù)據(jù)元素集合(也可稱數(shù)據(jù)對象)中各元素的關(guān)系。 定義二、相互之間存在特定關(guān)系的數(shù)據(jù)元素集合。