超级无敌排序算法

软件行业笔试 考排序算法是少不了的 
更有甚者 要你求一元二次不等式的解集,做什么智力测试题 
简直要晕倒 
上次笔试一下懵了差点就挂了,结果还是gameOver了 
废话少说,正题 
先看下高手写的 专业的:  

代码
1 int[] array = new int[5];
2 int temp = 0;
3 for (int i = 0; i < array.Length - 1; i++)
4 {
5 for (int j = i + 1; j < array.Length; j++)
6 {
7 if (array[j] < array)
8 {
9 temp = array;
10 array = array[j];
11 array[j] = temp;
12 }
13 }
14 }

再看下另一个(挺简洁 不过逻辑不好):

int j = 0;
for (j = 0; j < j.Length - 1; j++)
{
for (k = 0; k < j; k++)
{
if (arra[j] < arra[k])
{
tmp
= arra[j];
arra[j]
= arra[k];
arra[k]
= tmp;
}
}
}

 

再看下偶写的(偶数学不行 没办法)

1 int[] arra = { 4, 99, 7, 120, 88 };
2 int[] arra2 = new Array[5];
3 int j = 0;
4 int k = 0;
5 int tmp = 0;
6 int indx = -1;
7 for (j = 0; j < 5; j++)
8 {
9 indx = -1;
10 tmp = 0;
11 for (k = 0; k < 5; k++)
12 {
13 if (arra[k] > tmp && arra[k] != 0)
14 {
15 tmp = arra[k];
16 indx = k;
17 }
18 }
19 if (indx != -1)
20 {
21 arra2[j] = tmp;
22 arra[indx] = 0;
23 }
24 }
25 int n = 0;
26 while (n < 5)
27 {
28 printf("%d\n", arra2[n]);
29 n++;
30 }

 

 

有想法不??反正他又没说一定要“冒泡排序”只是说排序而已^_^ 
哇哈哈 这恐怕是世界上效率最高的排序算法了 
它上面说的是“选择一种你熟悉的语言写一个排序算法” 
当时要是这样写:(用c#.net类库的朋友知道我在说什么) 
估计对方会当场吐血 

1 using System.Collection;
2  int[] arra = { 4, 99, 7, 120, 88 };
3 ArrayList al = new ArrayList();
4 foreach (int i in arra)
5 {
6 al.add(i);
7 }
8 al.Sort();

 

 

 

 

 

 

 

posted @ 2010-08-06 23:57  assassinx  阅读(271)  评论(0编辑  收藏  举报