2012-02-09 102 views
-2

我想在.NET(c#)中将数组从小到大进行排序,而无需使用Bubble Sort,也无需使用Datatables.Can任何人都可以帮助我完成任务吗?.NET从最大到最小

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //int[,] myArray = new int[4, 2]; 


      //int[,] array_sorted = { { 20, 9, }, { 75, 25 }, { 90, 78, } }; 
      int[,] array_sorted = { { 20, 9, }, { 75, 25 }, { 50, 92 }, { 9, 7 }, { 19, 78 }, { 50, 78 }, { 50, 98 }, { 23, 32 }, { 12, 232 }, { 45, 65 } }; 



      Console.WriteLine("Before Bubble Sorting...."); 
      for (int i = 0; i < array_sorted.GetLength(0); i++) 
      { 
       for (int j = 0; j < array_sorted.GetLength(1); j++) 
       { 
        Console.Write("{0,3}", array_sorted[i, j]); // respresent how the element should be represented 
       } 
       Console.WriteLine(); 
      } 
      Console.WriteLine("After Bubble Sorting..."); 

      for (int i = 0; i < array_sorted.GetLength(0); i++) // Array Sorting 
      { 
       for (int j = array_sorted.GetLength(1) - 1; j > 0; j--) 
       { 
        for (int k = 0; k < j; k++) 
        { 
         if (array_sorted[i, k] > array_sorted[i, k + 1]) 
         { 
          int temp = array_sorted[i, k]; 
          array_sorted[i, k] = array_sorted[i, k + 1]; 
          array_sorted[i, k + 1] = temp; 
         } 
        } 
       } 

      } 

      for (int i = 0; i < array_sorted.GetLength(0); i++) 
      { 
       for (int j = 0; j < array_sorted.GetLength(1); j++) 
       { 
        Console.Write("{0 ,3}", array_sorted[i, j]); 
       } 
       Console.WriteLine(); 
      } 






      Console.ReadLine(); 
     } 
    } 
} 
+0

看来你可能会错过第三个循环 – 2012-02-09 14:10:34

+0

这功课?您可能想要搜索排序算法。快速排序是一种非常流行的通用算法。 – 2012-02-09 14:11:35

+0

这两个数组需要排序吗? – user7116 2012-02-09 14:11:42

回答

2

使用String.Sort并实现IComparer。你不必这么复杂。 array.Sort(new YourComparer())。阅读MSDN数组排序和IComparer。

2

-1明显的作业。

总之,这里是一个简单的答案:

变种排序= array.OrderByDesc(X => X).ToArray();

完成。未经测试,因此可能存在语法错误。使用根据您提供的C#语言有效的LINQ。

+0

OP的数组是二维的,所以在你的例子中'OrderByDescending'不适用。 – user7116 2012-02-09 14:12:39

+0

-1明显blaming.it不是作业 – 2012-02-09 14:12:58

+0

我不想使用函数构建 – 2012-02-09 14:13:25