c#实现几种常见排序算法用
没事把几种常见排序算法用c#写一下,复习一下,大伙也复习一下,今天先写3种简单的。//SelectSort
static void Main(string[] args)
{
int n = 6;
int[] a = { 10, 2, 5, 1, 8, 4 };
int temp = 0,temp_v = 0;
int j = 0;
for (int i = 0; i < n-1; i++)
{
temp = i;
for (j = i + 1; j < n; j++)
temp = a[temp] < a[j] ? temp : j;
//swap a[temp],a[i]
temp_v = a[temp];
a[temp] = a[i];
a[i] = temp_v;
}
for (int i = 0; i < n; i++)
{
Console.Write("{0},", a[i]);
}
Console.ReadLine();
}
//InsertSort
static void Main(string[] args)
{
int n = 6;
int[] a = { 10, 2, 5, 1, 8, 4 };
int temp = 0;
int j = 0;
for (int i = 1; i < n; i++)
{
temp = a[i];
for (j = i; j > 0 && temp < a[j - 1]; a[j] = a[j - 1], j--) ;
a[j] = temp;
}
for (int i = 0; i < n; i++)
{
Console.Write("{0},",a[i]);
}
Console.ReadLine();
}
//BubbleSort
static void Main(string[] args)
{
int n = 6, m =6;
int[] a = { 10, 2, 5, 1, 8, 4 };
int temp_v = 0;
int j = 0;
for (int i = 0; i < n; n--)
for (j = 1; j < n; j++)
if (a[j-1] > a[j])
{
//swap a[j],a[j-1]
temp_v = a[j];
a[j] = a[j-1];
a[j-1] = temp_v;
}
for (int i = 0; i < m; i++)
{
Console.Write("{0},", a[i]);
}
Console.ReadLine();
} --------------------编程问答-------------------- 哈~不错~复习复习~~ --------------------编程问答-------------------- 不错。学习一下。现在排序懒了,直接使用array.sort --------------------编程问答-------------------- --------------------编程问答-------------------- [img=/upload/20131228/51.gif][/img --------------------编程问答-------------------- 冒泡有点问题哦,应该检测每边是否交换过。。 --------------------编程问答-------------------- 基本上都是典型的算法,现在基本上是需要结合具体的业务场景使用正确的算法,所以算法的用法比算法本身更重要。
这些算法都有数学背景作支撑,楼主最好能给出其数学背景,这样理解起来更深刻。 --------------------编程问答-------------------- 5楼的意思我不明白。
6楼你说的是指这些算法的原理么?虽然我是学数学的,可是让我说出这个原理知识还是有所欠缺,
补充:.NET技术 , C#