超级无敌排序算法
软件行业笔试 考排序算法是少不了的
更有甚者 要你求一元二次不等式的解集,做什么智力测试题
简直要晕倒
上次笔试一下懵了差点就挂了,结果还是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();