算出有多少种排序 int i=1;
for (int k = 1; k <= 6; k++)
{
i = i * k;
}
MessageBox.Show(i.ToString());如果是想显示出所有排序,
就要写个递归或循环的方法显示出来
for (int k = 1; k <= 6; k++)
{
i = i * k;
}
MessageBox.Show(i.ToString());如果是想显示出所有排序,
就要写个递归或循环的方法显示出来
解决方案 »
- C#中实现施工横道图,网络图,在线等高手!
- winform程序重启的问题用application.Restart()不正常
- c# 如果通过class来设定一from中的button的状态
- 求教OpenNETCF.Net.NetworkInformation里AccessPointCollection类的问题
- 动态调用WebService
- 用nhibernate插入datetime的问题
- 怎么实现下载功能
- Ext.Panel中定时刷新图片发生闪烁的问题
- 在VC#.net中怎么将已有的一个Excel Sheet保存为一新的Excel文件?
- 可否在程序中实现自动登录?
- 类的成员函数调用问题
- vs2005自定义datastyle
下面我给出酸法的性能,自己算吧
排序方法 最好时间 平均时间 最坏时间 辅助空间 稳定性
___________________________________________________________________________________
直接插入排序 O(n) O(n^2) O(n^2) O(1) 稳定
希尔排序 O(n^1.3) O(1) 不稳定
直接选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定
堆排序 O(nlog2N) O(nlog2N) O(nlog2N) O(1) 不稳定
冒泡排序 O(n) O(n^2) O(n^2) O(1) 稳定
快速排序 O(nlog2N) O(nlog2N) O(n^2) O(log2N) 不稳定
归并排序 O(nlog2N) O(nlog2N) O(nlog2N) O(n) 稳定
{
foreach (char c in result)
richTextBox2.Text += c;
richTextBox2.Text += "\n";
}IEnumerable<char[]> numSort(char[] input, int fromIndex, int toIndex)
{
if (fromIndex < toIndex)
{
char m = input[fromIndex];
foreach (char[] right in numSort(input, fromIndex + 1, toIndex))
{
yield return right; for (int i = fromIndex + 1; i <= toIndex; i++)
{
char[] cc = new char[right.Length];
right.CopyTo(cc, 0);
cc[fromIndex] = cc[i];
cc[i] = m;
yield return cc;
}
}
}
else
yield return input; yield break;
}
class Program
{
static void Main(string[] args)
{
string[] result = GetStrings(new int[] { 1, 2, 3, 4, 5, 6 });
foreach (string str in result)
{
Console.WriteLine(str);
}
Console.WriteLine(result.Length);//共720
Console.Read();
}
static string[] GetStrings(int[] nums)
{
if (nums.Length == 2)
{
return new string[] { nums[0].ToString() + nums[1].ToString(), nums[1].ToString() + nums[0].ToString() };
}
List<string> allsub = new List<string>();
for (int i = 0; i < nums.Length; i++)
{
List<int> _param = new List<int>(nums);
_param.Remove(nums[i]);
int[] param = _param.ToArray();
string[] subs = GetStrings(param);
for (int j = 0; j < subs.Length; j++) {
allsub.Add(subs[j].ToString() + nums[i]);
}
}
return allsub.ToArray();
}
}
{
string min = "";
for (int i = 0; i < list.Length - 1; i++)
{
for (int j = i + 1; j < list.Length; j++)
{
if (list[j].CompareTo(list[i]) < 0)
{
min = list[j];
list[j] = list[i];
list[i] = min;
}
} }
}