国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#實現(xiàn)的二維數(shù)組排序算法示例

C#實現(xiàn)的二維數(shù)組排序算法示例

2022-02-17 15:34xuanfeng C#

這篇文章主要介紹了C#實現(xiàn)的二維數(shù)組排序算法,涉及C#針對二維數(shù)組的遍歷、判斷、排序等相關操作技巧,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)的二維數(shù)組排序算法。分享給大家供大家參考,具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
class Order
{
  /// <summary>
  /// 對二維數(shù)組排序
  /// </summary>
  /// <param name="values">排序的二維數(shù)組</param>
  /// <param name="orderColumnsIndexs">排序根據(jù)的列的索引號數(shù)組</param>
  /// <param name="type">排序的類型,1代表降序,0代表升序</param>
  /// <returns>返回排序后的二維數(shù)組</returns>
  public static object[,] Orderby(object[,] values, int[] orderColumnsIndexs, int type)
  {
   object[] temp = new object[values.GetLength(1)];
   int k;
   int compareResult;
   for (int i = 0; i < values.GetLength(0); i++)
   {
    for (k = i + 1; k < values.GetLength(0); k++)
    {
     if (type.Equals(1))
     {
      for (int h = 0; h < orderColumnsIndexs.Length; h++)
      {
       compareResult = Comparer.Default.Compare(GetRowByID(values, k).GetValue(orderColumnsIndexs[h]), GetRowByID(values, i).GetValue(orderColumnsIndexs[h]));
       if (compareResult.Equals(1))
       {
        temp = GetRowByID(values, i);
        Array.Copy(values, k * values.GetLength(1), values, i * values.GetLength(1), values.GetLength(1));
        CopyToRow(values, k, temp);
       }
       if (compareResult != 0)
        break;
      }
     }
     else
     {
      for (int h = 0; h < orderColumnsIndexs.Length; h++)
      {
       compareResult = Comparer.Default.Compare(GetRowByID(values, k).GetValue(orderColumnsIndexs[h]), GetRowByID(values, i).GetValue(orderColumnsIndexs[h]));
       if (compareResult.Equals(-1))
       {
        temp = GetRowByID(values, i);
        Array.Copy(values, k * values.GetLength(1), values, i * values.GetLength(1), values.GetLength(1));
        CopyToRow(values, k, temp);
       }
       if (compareResult != 0)
        break;
      }
     }
    }
   }
   return values;
  }
  /// <summary>
  /// 獲取二維數(shù)組中一行的數(shù)據(jù)
  /// </summary>
  /// <param name="values">二維數(shù)據(jù)</param>
  /// <param name="rowID">行ID</param>
  /// <returns>返回一行的數(shù)據(jù)</returns>
  static object[] GetRowByID(object[,] values, int rowID)
  {
   if (rowID > (values.GetLength(0) - 1))
    throw new Exception("rowID超出最大的行索引號!");
   object[] row = new object[values.GetLength(1)];
   for (int i = 0; i < values.GetLength(1); i++)
   {
    row[i] = values[rowID, i];
   }
   return row;
  }
  /// <summary>
  /// 復制一行數(shù)據(jù)到二維數(shù)組指定的行上
  /// </summary>
  /// <param name="values"></param>
  /// <param name="rowID"></param>
  /// <param name="row"></param>
  static void CopyToRow(object[,] values, int rowID, object[] row)
  {
   if (rowID > (values.GetLength(0) - 1))
    throw new Exception("rowID超出最大的行索引號!");
   if (row.Length > (values.GetLength(1)))
    throw new Exception("row行數(shù)據(jù)列數(shù)超過二維數(shù)組的列數(shù)!");
   for (int i = 0; i < row.Length; i++)
   {
    values[rowID, i] = row[i];
   }
  }
}
static void Main(string[] args)
{
   object[,] o = new object[6, 4] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 11, 12 }, { 15, 16, 11, 17, }, { 5, 6, 7,9 } };
   Console.WriteLine("沒排序前的二維數(shù)組:");
   Print(o);
   Console.WriteLine("根據(jù)第3,4列升序排序后的數(shù)組:");
   Order.Orderby(o, new int[] { 2,3 },0);
   Print(o);
   Console.WriteLine("根據(jù)第3,4列降序序排序后的數(shù)組:");
   Order.Orderby(o, new int[] { 2, 3 }, 1);
   Print(o);
   Console.Read();
}
static void Print(object[,] values)
{
   int k;
   for (int i = 0; i < values.GetLength(0);i++ )
   {
    for (k = 0; k < values.GetLength(1);k++ )
    {
     Console.Write(values[i,k]);
     Console.Write(" ");
    }
    Console.WriteLine(" ");
   }
}

運行結(jié)果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
沒排序前的二維數(shù)組:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 11 12
15 16 11 17
5 6 7 9
根據(jù)第3,4列升序排序后的數(shù)組:
1 2 3 4
5 6 7 8
5 6 7 9
13 14 11 12
9 10 11 12
15 16 11 17
根據(jù)第3,4列降序序排序后的數(shù)組:
15 16 11 17
9 10 11 12
13 14 11 12
5 6 7 9
5 6 7 8
1 2 3 4

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

原文鏈接:http://www.cnblogs.com/xuanfeng/archive/2008/11/20/1334636.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品久久久久久久蜜桃 | 亚洲精品成人免费 | 欧美一级二级三级 | 亚洲午夜在线 | 精品天堂| 亚洲国产精品激情在线观看 | 日日夜夜精品视频 | 成人av专区 | 午夜天堂精品久久久久 | 国产欧美综合一区二区三区 | 青青操av在线 | 久草中文在线 | 精品国产久 | 国产精品69毛片高清亚洲 | 国产伊人一区 | 九九香蕉视频 | 91日日夜夜 | 国产午夜在线 | 午夜精品久久久久 | 天天干干干干 | 涩涩久久 | 久久99精品视频 | 国产欧美视频在线 | 久久久久久久久久久久免费 | 高清视频一区二区三区 | 欧美国产一区二区三区 | 亚洲国产精品久久 | 91精品网 | 日本a v在线播放 | 中文字幕在线精品 | 日韩在线一区二区 | 欧美激情精品久久久久久变态 | 欧美日韩成人 | 自由成熟xxxx色视频 | 亚洲国产成人精品久久久国产成人一区 | 欧美午夜一区二区三区免费大片 | 午夜爱 | 一级网站在线观看 | 中文字幕精品一区二区精品 | 久久一区二区三区四区 | 一区二区三区在线看 |