永发信息网

matlab冒泡排序

答案:2  悬赏:0  手机版
解决时间 2021-03-02 22:48
  • 提问者网友:半生酒醒
  • 2021-03-01 23:38
今年北京奥运会有七个国家或地区参加,开幕式按照国家或地区英文名从小到大的次序出场,已知这七个国家或地区的名字,请写出经前三趟冒泡后出场的次序表。 England, France , American , Italy, Japan, China, Hongkong
1 2 3 4 5 6 7

England France American Italy Japan China Hongkong
急求大神指教,明天就要交,急!!!!!
最佳答案
  • 五星知识达人网友:行路难
  • 2021-03-01 23:56
List={'England','France','American','Italy','Japan','China','Hongkong'};
len=size(List);
L=len(2); %取得列表长度
for j=1:L
swap=0;
for i=1:L-1
str1=char(List(i)); %取得字符串
strtrim(str1); %去掉字符串头尾空格
c1=upper(str1(1)); %取得头字母
%转换成大写
str2=char(List(i+1));
strtrim(str2); %去掉字符串头尾空格
c2=upper(str2(1)); %转换成大写

if c1>c2 %冒泡排序
list1 = List(i);
List(i) = List(i+1);
List(i+1) = list1;
swap=1;
end

end
if (~swap)
break;
end
end
%排序后
List
全部回答
  • 1楼网友:洒脱疯子
  • 2021-03-02 00:24
function n=bub(p) n=p; if length(size(p))~=2 | min(size(p))>1, disp('参数必须为向量.'); else for i=1:length(p) for j=2:length(p) if n(j-1)>n(j) q=n(j-1); n(j-1)=n(j); n(j)=q; end end end end end 有多余的比较. 可以把 for j=2:length(p) 修改成 for j=2:(length(p)-i+1) 不过既然是bubble排序,就不要太在意效率,越简单越好.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯