亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#求數組中元素全排列的方法

2020-01-24 01:32:34
字體:
來源:轉載
供稿:網友

本文實例講述了C#求數組中元素全排列的方法。分享給大家供大家參考。具體如下:

1.算法描述

全排列的第一項是該數組的升序排列,最后一項是該數組的降序排列。本文中用到的了一個函數FindNextArray:從升序排列開始,不斷使用函數FindNextArray,可以遍歷全部排列,最終到達數組中元素的降序排列。

FindNextArray函數的實現思路:

設有數組array為原數組的一個排列

1)找出數組的最大值
2)從后向前找:找到第一組array[i]>array[i-1]的數,以i位置為signer
3)從signer向后找:找到大于且最接近于array[signer-1]的數array[t]
4)將找到的array[t]和array[signer-1]互換
5)為位置signer之后的元素升序排序

所得的新數組即為原數組的一個新排列

2.相關函數

/// <summary>/// 輸出一個數組的全排列/// </summary>/// <param name="array"></param>private static void PrintFullPermutation(int[] array){ //0.合法性校驗 if (array == null || array.Length == 0) {  return; } //1.復制一個新數組:修改時在臨時數組中修改 int[] temp = new int[array.Length]; for (int i = 0; i < array.Length; i++) {  temp[i] = array[i]; } //2.將新數組升序排列 int itemp; for (int i = 0; i < temp.Length; i++) {  for (int j = i; j < temp.Length; j++)  {   itemp = array[i];   array[i] = array[j];   array[j] = itemp;  } } //3.依次尋找并打印全排序 PrintArray(temp); while (!isDesc(temp)) {  FindNextArray(temp);  PrintArray(temp); }}/// <summary>/// 打印數組/// </summary>/// <param name="array">數組</param>private static void PrintArray(int[] array){ for (int i = 0; i < array.Length; i++) {  Console.Write(array[i].ToString() + '/t'); } Console.WriteLine();}/// <summary>/// 判斷一個數組內元素是否降序排列/// </summary>/// <param name="array">數組</param>/// <returns></returns>private static bool isDesc(int[] array){ int temp=array[0]; for (int i = 1; i < array.Length; i++) {  if (array[i] > array[i - 1])  {   return false;  } } return true;}/// <summary>/// 找到下一組排列/// </summary>/// <param name="array"></param>private static void FindNextArray(int[] array){ //1.找出數組的最大值 int max = array[0]; for (int i = 1; i < array.Length; i++) {  if (max < array[i])  {   max = array[i];  } } //2.從后向前找:找到第一組后數大于前數,以后數位置為signer int signer = array.Length - 1; for (int i = array.Length - 1; i > 0; i--) {  if (array[i] > array[i - 1])  {   signer = i;   break;  } } //3.從signer向后找:找到大于且最接近于array[signer-1]的數array[t] int t = signer; for (int i = signer; i < array.Length; i++) {  if (array[i] > array[signer - 1] && array[i] < max)  {   t = i;   max = array[t];  } } //4.將找到的array[t]和array[signer-1]互換 int temp = array[t]; array[t] = array[signer - 1]; array[signer - 1] = temp; //5.為signer之后的元素升序排序 for (int i = signer; i < array.Length; i++) {  for (int j = i + 1; j < array.Length; j++)  {   if (array[i] > array[j])   {    temp = array[i];    array[i] = array[j];    array[j] = temp;   }  } }}

3.Main函數調用

static void Main(string[] args){ //求1234四個數字的全排列 int[] array = new int[] { 1, 2, 3, 4 }; PrintFullPermutation(array); Console.ReadLine();}

4.程序運行示例

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久久网站| 久久精品国产亚洲一区二区| 国产精品久久久久aaaa九色| 国产成人免费av电影| 一区二区三区天堂av| 亚洲精品在线观看www| 一区三区二区视频| 欧美久久久精品| 欧美肥婆姓交大片| 亚洲精品福利视频| 久久精品一区中文字幕| 美日韩在线视频| 亚洲欧美999| 一区二区三区视频免费| 久久综合色88| 国产精品入口夜色视频大尺度| 国产精品入口免费视| 国产午夜精品全部视频播放| 欧美电影免费在线观看| 欧美亚洲成人xxx| 中文字幕日韩高清| 性欧美暴力猛交69hd| 国产精品亚洲一区二区三区| 久久精品最新地址| 国产一区视频在线播放| 伊人久久久久久久久久久久久| 国产精品成人v| 国产激情综合五月久久| 91地址最新发布| 国产精品国产福利国产秒拍| 国产一级揄自揄精品视频| 亚洲少妇中文在线| 亚洲免费福利视频| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧美在线x视频| 成人欧美在线视频| 国产精品视频在线播放| 欧美日本在线视频中文字字幕| 国模吧一区二区| 久久久之久亚州精品露出| 亚洲欧美国产精品专区久久| 久久国产精品久久精品| 亚洲精品一区二区三区婷婷月| 国产91成人video| 92国产精品久久久久首页| 尤物99国产成人精品视频| 亚洲精品国产品国语在线| 午夜精品一区二区三区视频免费看| 欧美富婆性猛交| 欧美激情在线观看视频| 午夜精品99久久免费| 97在线日本国产| 亚洲www在线| 国产精品一区电影| 久久亚洲一区二区三区四区五区高| 亚洲美女黄色片| 欧美中在线观看| 欧美亚洲午夜视频在线观看| 好吊成人免视频| 久久免费观看视频| 国产精品免费一区二区三区都可以| 亚洲精品中文字| 亚洲欧美国产精品专区久久| 精品久久久精品| 国产精品十八以下禁看| 欧美综合国产精品久久丁香| 午夜免费日韩视频| 欧美在线视频一区二区| 午夜免费久久久久| 国产在线精品播放| 超碰精品一区二区三区乱码| 国产伦精品一区二区三区精品视频| 久久91亚洲精品中文字幕奶水| 欧美日韩综合视频网址| 岛国av一区二区| 亚洲免费高清视频| 亲爱的老师9免费观看全集电视剧| 亚洲国产福利在线| 51ⅴ精品国产91久久久久久| 91福利视频网| 亚洲va男人天堂| 日韩在线资源网| 日本sm极度另类视频| 国产成人高清激情视频在线观看| 精品久久久国产| 亚洲va久久久噜噜噜久久天堂| 欧美疯狂性受xxxxx另类| 国产伊人精品在线| 国产视频欧美视频| 欧美乱妇高清无乱码| 亚洲第一视频在线观看| 国产精品视频久| 国产美女精品视频免费观看| 91超碰中文字幕久久精品| 欧美日韩国产91| 欧美国产日韩一区二区在线观看| 亚洲xxxx18| 欧美电影免费看| 国内精品一区二区三区| 这里只有精品在线观看| 日本高清视频精品| 精品一区二区三区电影| 亚洲va欧美va国产综合久久| 欧美乱妇高清无乱码| 亚洲欧美另类在线观看| 日韩视频一区在线| 日韩一区在线视频| 亚洲欧洲日韩国产| 91亚洲一区精品| 欧美日韩精品在线观看| 欧美精品久久一区二区| 精品国内亚洲在观看18黄| 国产成人精品在线播放| 欧美日韩成人网| 欧美激情中文字幕乱码免费| 日本高清+成人网在线观看| 久久久免费在线观看| 欧美一区三区三区高中清蜜桃| 狠狠色狠色综合曰曰| 精品国产乱码久久久久久虫虫漫画| 日韩在线视频线视频免费网站| 亚洲视频777| 国产91露脸中文字幕在线| 久久视频在线看| 国产精品美女久久久久久免费| 久久精品国产精品| 欧美亚洲另类激情另类| 日本免费久久高清视频| 色偷偷888欧美精品久久久| 国产精品极品在线| 亚洲精品国产成人| 亚洲伊人久久综合| 91亚洲人电影| 国产不卡一区二区在线播放| 欧美激情第一页xxx| 久久久精品国产一区二区| 国产成人在线精品| 欧美一级淫片aaaaaaa视频| 亚洲欧洲美洲在线综合| 成人性生交xxxxx网站| 欧美性xxxxx极品娇小| 91禁国产网站| 91久久国产综合久久91精品网站| 日韩精品在线观看一区二区| 亚洲欧美制服第一页| 九九热最新视频//这里只有精品| 日韩精品在线观看一区二区| 国产成人福利视频| 国产精品极品美女在线观看免费| 亚洲国产天堂久久综合| 国产在线拍揄自揄视频不卡99| 国产精品一区二区久久国产| 欧美极品少妇与黑人| 国产精品视频白浆免费视频| 中文字幕日韩av电影| 欧美精品18videos性欧| 在线国产精品视频| 欧美国产日韩精品| 亚洲欧美激情在线视频| 91成人在线播放| 日本免费一区二区三区视频观看| 91视频88av| 日韩视频在线一区| 97视频免费观看|