14-matlab排序

冒泡和选择:

clc;
clear;
n = 10; %输入数据的个数
suct = 0; %素数的个数
unsuct = 0;%非素数的个数 % a = [33 34 2 34 24 56 3 17 7 11]
for i = 1:n
fprintf('第%d个数', i);
a(i) = input('请输入:');
end
fprintf('输入的序列为:')
a
for i = 1 : n
% a=input('输入:');
if isprime(a(i)) == 1
suct = suct + 1;
su(suct) = a(i);
else
unsuct = unsuct + 1;
unsu(unsuct) = a(i);
end
end
su1 = su;
fprintf('素数排序前:')
su
%冒泡排序:
n = suct;
for i = 1:n
for j = 2:n-i+1
if su1(j-1) > su1(j) %每次去找一个逆序,交换位置
temp = su1(j-1);
su1(j-1) = su1(j);
su1(j) = temp;
end
end
end
fprintf('素数冒泡排序的结果:')
su1
%非素素排序
unsu1 = unsu;
fprintf('非素数排序前:')
unsu
%冒泡排序:
n = unsuct;
for i = 1:n
for j = 2:n-i+1
if unsu1(j-1) > unsu1(j) %每次去找一个逆序,交换位置
temp = unsu1(j-1);
unsu1(j-1) = unsu1(j);
unsu1(j) = temp;
end
end
end
fprintf('非素数冒泡排序的结果:')
unsu1

  

clc;
clear;
n = 10; %输入数据的个数
suct = 0; %素数的个数
unsuct = 0;%非素数的个数 % a = [8 45 23 7 56 99 48 17 75 48]
% 读入十个数并判断素数:
for i = 1:n
fprintf('第%d个数', i);
a(i) = input('请输入:');
end for i = 1 : n
% a=input('输入:');
if isprime(a(i)) == 1
suct = suct + 1;
su(suct) = a(i);
else
unsuct = unsuct + 1;
unsu(unsuct) = a(i);
end
end %插入排序
%素数排序
su1 = su;
fprintf('素数排序前:')
su
m = suct;
for i=2:m
if su1(1,i)<su1(1,i-1)
j=i-1; %记录这个位置
temp=su1(i); %将这个位置的元素值取出来
su1(i)=su1(i-1); %将大的元素后移
while (j-1)>0 %这里实现待插入的元素和已排好序列进行比较
if temp<su1(j-1)
su1(j)=su1(j-1);
else
break;
end
j=j-1;
end
su1(j)=temp;
end
end
fprintf('素数选择排序的结果:')
su1 %非素数排序:
unsu1 = unsu;
fprintf('非素数排序前:')
unsu
m = unsuct;
for i=2:m
if unsu1(1,i)<unsu1(1,i-1)
j=i-1; %记录这个位置
temp=unsu1(i); %将这个位置的元素值取出来
unsu1(i)=unsu1(i-1); %将大的元素后移
while (j-1)>0 %这里实现待插入的元素和已排好序列进行比较
if temp<unsu1(j-1)
unsu1(j)=unsu1(j-1);
else
break;
end
j=j-1;
end
unsu1(j)=temp;
end
end
fprintf('非素数选择排序的结果:')
unsu1

  

上一篇:Java多线程-线程的同步与锁【转】


下一篇:注册页面JS前台校验