如何对输入的数字排序 ,保存到动态数组C#  如,8366,45,123,789

解决方案 »

  1.   

    C#数组排序  using System;
      
       namespace DataStruct
       {
           public class Sorter
           {
             /// <summary>
             /// 冒泡排序法1
             /// </summary>
             /// <param name="list"></param> 
              public static void BubbleSort(int[] list)
              {
                  for (int i = 0; i < list.Length; i++)
                  {
                      for (int j = i; j < list.Length; j++)
                      {
                          if (list[i] < list[j])
                          {
                             int temp = list[i];
                             list[i] = list[j];
                             list[j] = temp;
                         }
                     }
                 }
             }         /// <summary>
             /// 插入排序法
             /// </summary>
             /// <param name="list"></param>
             public static void InsertionSort(int[] list)
             {
                 for (int i = 1; i < list.Length; i++)
                  {
                     int t = list[i];
                     int j = i;
                     while ((j > 0) && (list[j - 1] > t))
                     {
                         list[j] = list[j - 1];
                         --j;
                     }
                     list[j] = t;
                 }
             }         //// <summary>
             /// 选择排序法
             /// </summary>
             /// <param name="list"></param>
             public static void SelectionSort(int[] list)
             {
                 int min;
                 for (int i = 0; i < list.Length - 1; i++)
                 {
                     min = i;
                     for (int j = i + 1; j < list.Length; j++)
                     {
                         if (list[j] < list[min])
                             min = j;
                     }
                     int t = list[min];
                     list[min] = list[i];
                     list[i] = t;
                 }
             }        //// <summary>
            /// 希尔排序法
            /// </summary>
            /// <param name="list"></param>
            public static void ShellSort(int[] list)
            {
                 int inc;
                 for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
                 for (; inc > 0; inc /= 3)
                 {
                     for (int i = inc + 1; i <= list.Length; i += inc)
                     {
                         int t = list[i - 1];
                         int j = i;
                         while ((j > inc) && (list[j - inc - 1] > t))
                         {
                             list[j - 1] = list[j - inc - 1];
                             j -= inc;
                         }
                         list[j - 1] = t;
                     }
                 }
             }         private static void Swap(ref int l, ref int r)
             {
                 int s;
                 s = l;
                 l = r;
                 r = s;
             }         /// 快速排序法
             /// </summary>
             /// <param name="list"></param>
             /// <param name="low"></param>
             /// <param name="high"></param>
             public static void Sort(int[] list, int low, int high)
             {
                 int pivot;
                 int l, r;
                 int mid;
                 if (high <= low)
                     return;
                 else if (high == low + 1)
                 {
                     if (list[low] > list[high])
                         Swap(ref list[low], ref list[high]);
                     return;
                 }
                 mid = (low + high) >> 1;
                 pivot = list[mid];
                 Swap(ref list[low], ref list[mid]);
                 l = low + 1;
                 r = high;
                 do
                 {
                     while (l <= r && list[l] < pivot)
                         l++;
                     while (list[r] >= pivot)
                         r--;
                     if (l < r)
                         Swap(ref list[l], ref list[r]);
                 } while (l < r);
                 list[low] = list[r];
                 list[r] = pivot;
                 if (low + 1 < r)
                     Sort(list, low, r - 1);
                 if (r + 1 < high)
                     Sort(list, r + 1, high);
             }
         }
    }
      

  2.   


                string str = "8366,45,123,789";
                int[] array = Array.ConvertAll<string, int>(str.Split(new char[]{','}), new Converter<string, int>(Convert.ToInt32));
      

  3.   

    漏了一句
     Array.Sort(array);
      

  4.   

    用ArrayList,然后再用ArrayList.sort()就可以排序了;
      

  5.   

    参考如下代码应该可以实现你的功能using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string str = "";
                ArrayList  al =new ArrayList();
                Console.WriteLine(" 请输入数字,输入exit退出");
                str = Console.ReadLine();
                while (str != "exit")
                {
                    int num = int.Parse(str);
                    al.Add(num);
                    str = Console.ReadLine();                
                }
                al.Sort();
                for (int i = 0; i < al.Count; i++)
                {
                    Console.WriteLine("第{0}个数是:{1}", i + 1, al[i]);
                }
                Console.ReadLine();
            }
        }
    }