pl/sql實現排列組合中組合

來源:互聯網
上載者:User

標籤:pl/sql

 procedure zuhev(n      number,
                   arrvar out t_arrchar) is
    idx number;
    m   number;
    x   number := 1;
    type arrayty is table of number index by binary_integer;
    -- nlarr nlarrarty;
    -- arr arrayty;
    p    arrayty;
    a    arrayty;
    tmps varchar2(1000);
  begin
    for i in 1 .. n
    loop
      a(i) := i;
    end loop;
    for i in 1 .. n
    loop
      p(i) := i;
    end loop;
    for i in 0 .. n
    loop
      m := i;
      begin
        idx := 1;
        p(idx) := 1; --//取第一個元素
        while (true)
        loop
          if (p(idx) > n) then
            --//取到底了,回退
            if (idx = 1) then
              --//各種情況取完了,不能再回退了
              exit;
            end if;
            --}
            idx := idx - 1; --;//回退到前一個
            p(idx) := p(idx) + 1; --//替換元素       
            --   }
          elsif (idx = m) then
            --//取夠了,輸出
            for i in 1 .. m
            loop
              tmps := tmps || to_char(a(p(i)));
            end loop;
            arrvar(x) := tmps;
            tmps := null;
            p(idx) := p(idx) + 1; --//替換元素   
            x := x + 1;
          else
            --{//多取一個元素
            idx := idx + 1;
            p(idx) := p(idx - 1) + 1;
            --}
          end if;
        end loop;
      end;
    end loop;
    /*  for i in 1 .. arrvar.count
    loop
    dbms_output.put_line(to_char(arrvar(i)));
    end loop;*/
  end;

本文出自 “ORACLE/DB2/MYSQL” 部落格,謝絕轉載!

pl/sql實現排列組合中組合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.