• 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
    

      

  • 相关阅读:
    20170519
    20170515
    20170511
    20170509
    20170505
    使用 FirewallD 构建动态防火墙
    Elasticsearch 5.2.1Cluster 搭建
    elk,centos7,filebeat,elasticsearch-head详细安装步骤
    elk,centos7,filebeat,elasticsearch-head集成搭建
    memcached
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10201986.html
Copyright © 2020-2023  润新知