最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++實(shí)現(xiàn)全排列算法的示例代碼

 更新時(shí)間:2024年06月04日 08:29:42   作者:吉士先生  
本文主要介紹了C/C++實(shí)現(xiàn)全排列算法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、全排列的介紹

 從n個(gè)不同元素中任取m(m≤n)個(gè)元素,按照一定的順序排列起來,叫做從n個(gè)不同元素中取出m個(gè)元素的一個(gè)排列。當(dāng)m=n時(shí)所有的排列情況叫全排列。

2、方法和思路

  進(jìn)行窮舉法和特殊函數(shù)的方法,窮舉法的基本思想是全部排列出來.特殊函數(shù)法進(jìn)行特殊排列.

3、窮舉法

 【不包含重復(fù)數(shù)字的解法】    

#include <iostream>
using namespace std;
int main()
{
    int a[3];
    cout << "請(qǐng)輸入一個(gè)三位數(shù):" << endl;
    for (int m = 0; m < 3; m++)
    {
        cin >> a[m];
    }
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            for (int k = 0; k < 3; k++)
            {
                if (i != j && i != k && j != k)
                {
                    cout << a[i] << a[j] << a[k] << " ";
                }
            }
        }
    }
}

【包含重復(fù)數(shù)據(jù)的解法】   

#include <iostream>
using namespace std;
int main()
{
    int a[3];
    cout << "請(qǐng)輸入一個(gè)三位數(shù):" << endl;
    for (int m = 0; m < 3; m++)
    {
        cin >> a[m];
    }
    for ( int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            for (int k = 0; k < 3; k++)
            {
                if (i != j && i != k && j != k)
                {
                    cout << a[i] << a[j] << a[k] << " ";
                }
                else if(i==j&&i==k&&j==k)
                {
                    cout << a[i] << a[j] << a[k] << " ";
                }
            }
        }
    }
}

4、next_permutation()函數(shù)法而且調(diào)用了sort()排序函數(shù)

什么是sort函數(shù)?

這種方法也是小編特別推薦使用的,因?yàn)檫@種方法不僅可以高效的進(jìn)行排序而且特別容易理解.

next_permutation(s1.begin(), s1.end())

解釋:s1.begin(),是字符串的開頭,s1.end()是字符串的結(jié)尾   

頭文件:

#include <algorithm>

4.1、升序          

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;

int main()
{
	string s1;
	cout << "請(qǐng)輸入您要的數(shù)據(jù):" << endl;
	cin >> s1;
	
	do
	{
		cout << s1 << " ";
	} while (next_permutation(s1.begin(), s1.end()));


}

f1779de4a4354a75b112266bede13ea5.png

4.2、降序

bool cmp(int a, int b)
{
	return a > b;
}
while (next_permutation(s1.begin(), s1.end(),cmp));
sort(s1.begin(), s1.end(), cmp);

 比升序多了以上三個(gè)數(shù)據(jù)

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
bool cmp(int a, int b)
{
	return a > b;
}
int main()
{
	string s1;
	cout << "請(qǐng)輸入您要的數(shù)據(jù):" << endl;
	cin >> s1;
	sort(s1.begin(), s1.end(), cmp);
	do
	{
		cout << s1 << " ";
	} while (next_permutation(s1.begin(), s1.end(),cmp));


}

885e220397c946139dd029a530782462.png

5、總結(jié) 

有窮法具有有限性,然而特殊函數(shù)法會(huì)較好的解決了這個(gè)問題

到此這篇關(guān)于C/C++實(shí)現(xiàn)全排列算法的示例代碼的文章就介紹到這了,更多相關(guān)C++ 全排列算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)哈希桶的詳細(xì)教程

    C++實(shí)現(xiàn)哈希桶的詳細(xì)教程

    這篇文章主要介紹了C++實(shí)現(xiàn)哈希桶的詳細(xì)教程,哈希的底層是一個(gè)vector的數(shù)組,數(shù)組中的每個(gè)節(jié)點(diǎn)都有一個(gè)pair類型的數(shù)據(jù),文中通過代碼示例和圖文講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • C語言 解壓華為固件的實(shí)例代碼

    C語言 解壓華為固件的實(shí)例代碼

    這是解壓華為固件(update.app)的C語言。。其實(shí)這也是我翻115翻出來的。。。
    2013-08-08
  • Qt中QStringList與QString的常用方法總結(jié)

    Qt中QStringList與QString的常用方法總結(jié)

    這篇文章主要為大家總結(jié)了Qt中QString 與 (QStringList | QByteArray)之間的轉(zhuǎn)換,以及QString、QStringList的一些常用方法,感興趣的可以收藏一下
    2022-12-12
  • C++ 互斥鎖原理以及實(shí)際使用介紹

    C++ 互斥鎖原理以及實(shí)際使用介紹

    本文主要聊一聊如何使用互斥鎖以及都有哪幾種方式實(shí)現(xiàn)互斥鎖。實(shí)現(xiàn)互斥,可以有以下幾種方式:互斥量(Mutex)、遞歸互斥量(Recursive Mutex)、讀寫鎖(Read-Write Lock)、條件變量(Condition Variable)。感興趣的同學(xué)可以參考一下
    2023-04-04
  • C++多文件變量解析

    C++多文件變量解析

    大家注意不要在頭文件中定義變量,在頭文件中聲明變量。定義放在對(duì)應(yīng)的源文件中。其他地方只能用extern聲明
    2013-10-10
  • C++中雙冒號(hào)::的作用淺析

    C++中雙冒號(hào)::的作用淺析

    在C++中經(jīng)常使用雙冒號(hào)::,很多朋友不知道是什么意思,這篇文章主要介紹了C++中雙冒號(hào)::的作用,需要的朋友可以參考下
    2018-06-06
  • C++ template用法案例詳解

    C++ template用法案例詳解

    這篇文章主要介紹了C++ template用法案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • MFC控件大小隨窗體大小而改變

    MFC控件大小隨窗體大小而改變

    本文給大家分享的是使用VC++根據(jù)對(duì)話框大小調(diào)整控件大小的方法和示例代碼,有需要的小伙伴可以參考下。
    2015-06-06
  • C++ Qt實(shí)現(xiàn)瀏覽器網(wǎng)頁(yè)內(nèi)嵌的音視頻播放器

    C++ Qt實(shí)現(xiàn)瀏覽器網(wǎng)頁(yè)內(nèi)嵌的音視頻播放器

    這篇文章主要為大家詳細(xì)介紹了如何利用C++ Qt實(shí)現(xiàn)瀏覽器網(wǎng)頁(yè)內(nèi)嵌的音視頻播放器,并支持軟硬解碼,支持音頻,支持錄像截圖,支持多路播放等,感興趣的可以了解下
    2024-01-01
  • QT實(shí)現(xiàn)用戶登錄注冊(cè)

    QT實(shí)現(xiàn)用戶登錄注冊(cè)

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)用戶登錄注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論

通许县| 南陵县| 瑞安市| 双城市| 监利县| 六枝特区| 肥城市| 茌平县| 筠连县| 呼图壁县| 德安县| 城口县| 长武县| 井研县| 剑河县| 左贡县| 通渭县| 泸州市| 桐庐县| 杭锦旗| 祥云县| 吉安市| 垫江县| 通州区| 瑞丽市| 抚顺市| 高尔夫| 隆昌县| 乌恰县| 柘荣县| 搜索| 鹰潭市| 长垣县| 河北区| 威海市| 平顶山市| 新乐市| 临城县| 怀宁县| 中方县| 彩票|