如何对输入的数字排序 ,保存到动态数组C# 如,8366,45,123,789
解决方案 »
- [winform]vs里面工具箱拖出来个控件怎么改变父容器?
- 急,急,急,算法
- 在线求一个邮件群发代码~~~
- 请教一下,我想实现一个功能就是判断用户的session是否过期要怎么判断。
- datatable 多次赋值还是声明多个datatable
- BringToFront不好用,求MSDN未公开的API
- 把字符串放到表格中.......
- 如何實現字符串對數字的轉換?
- EF映射的一个问题
- 新手。C#模仿一个简单聊天程序,出现System.Net.Sockets.SocketException”类型的未经处理的异常出现在 System.dll 中
- (ACCESS数据库)如何将一个表传送至于客户机?
- 和当前时间对比
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);
}
}
}
string str = "8366,45,123,789";
int[] array = Array.ConvertAll<string, int>(str.Split(new char[]{','}), new Converter<string, int>(Convert.ToInt32));
Array.Sort(array);
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();
}
}
}