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

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

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

1、全排列的介紹

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

2、方法和思路

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

3、窮舉法

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

#include <iostream>
using namespace std;
int main()
{
    int a[3];
    cout << "請輸入一個三位數(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 << "請輸入一個三位數(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ù)?

這種方法也是小編特別推薦使用的,因為這種方法不僅可以高效的進行排序而且特別容易理解.

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 << "請輸入您要的數(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);

 比升序多了以上三個數(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 << "請輸入您要的數(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ù)法會較好的解決了這個問題

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

相關(guān)文章

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

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

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

    C語言 解壓華為固件的實例代碼

    這是解壓華為固件(update.app)的C語言。。其實這也是我翻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++ 互斥鎖原理以及實際使用介紹

    C++ 互斥鎖原理以及實際使用介紹

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

    C++多文件變量解析

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

    C++中雙冒號::的作用淺析

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

    C++ template用法案例詳解

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

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

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

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

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

    QT實現(xiàn)用戶登錄注冊

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

最新評論

类乌齐县| 汕尾市| 浦城县| 瓦房店市| 清水县| 景德镇市| 新河县| 嵊泗县| 白城市| 莱芜市| 峨山| 平湖市| 延吉市| 通许县| 丹寨县| 秭归县| 金华市| 房产| 皮山县| 陵水| 邢台县| 蒙自县| 铜陵市| 固阳县| 甘洛县| 三门县| 乌什县| 万安县| 稷山县| 纳雍县| 抚顺县| 乡城县| 鄂托克前旗| 山西省| 贵州省| 方山县| 鹤峰县| 白城市| 社旗县| 瑞安市| 南乐县|