今年北京奥运会有七个国家或地区参加,开幕式按照国家或地区英文名从小到大的次序出场,已知这七个国家或地区的名字,请写出经前三趟冒泡后出场的次序表。 England, France , American , Italy, Japan, China, Hongkong
1 2 3 4 5 6 7
England France American Italy Japan China Hongkong
急求大神指教,明天就要交,急!!!!!
matlab冒泡排序
答案:2 悬赏:0 手机版
解决时间 2021-03-02 22:48
- 提问者网友:半生酒醒
- 2021-03-01 23:38
最佳答案
- 五星知识达人网友:行路难
- 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
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排序,就不要太在意效率,越简单越好.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯