排序算法:Select 5 为列表中的最小值,0 为列表中的最大值
Sorting Algorithm: Select 5 as the smallest and 0 as the largest in a list
大家好,你们能帮我写一个比较函数,用于比较排序算法吗?这是标准函数,但是5必须算最小,0最大
所以如果我们有这样的数据,那么数字
0, 1, 5, 2, 3, 0, 1, 5, 4, 632, 0, 7
将被排序为
5, 5, 1, 1, 2, 3, 4, 7, 632, 0, 0, 0
这是伪代码;没有特定的语言。
int mycompar(int a, int b)
{
if (a > b) return 1;
if (a < b) return -1;
if (a == b) return 0;
}
以下代码应该有效:
int mycompar(int a, int b)
{
if (a==b) return 0;
if (a==0 || b==5) return 1;
if (a==5 || b==0) return -1;
if (a>b) return 1;
if (a<b) return -1;
}
0永远比任何其他数字都高而上升到顶部,而5总是比任何其他数字都低并沉到底部。
编辑:首先检查数字是 5 还是 0。
int mycompar(int a, int b) {
if ( a == b ) return 0;
if ( a == 5 || b == 0 ) return -1;
if ( a == 0 || b == 5 ) return 1;
return ( a > b ) ? 1 : -1;
}
此代码应该有效。
以下 C 代码有效:
int mycompar(int a, int b){
int MAX = 5, MIN = 0;
return ( a==MAX || b==MIN ? -1 : ( b==MAX || a==MIN ? 1 : a-b) );
}
大家好,你们能帮我写一个比较函数,用于比较排序算法吗?这是标准函数,但是5必须算最小,0最大
所以如果我们有这样的数据,那么数字
0, 1, 5, 2, 3, 0, 1, 5, 4, 632, 0, 7
将被排序为
5, 5, 1, 1, 2, 3, 4, 7, 632, 0, 0, 0
这是伪代码;没有特定的语言。
int mycompar(int a, int b)
{
if (a > b) return 1;
if (a < b) return -1;
if (a == b) return 0;
}
以下代码应该有效:
int mycompar(int a, int b)
{
if (a==b) return 0;
if (a==0 || b==5) return 1;
if (a==5 || b==0) return -1;
if (a>b) return 1;
if (a<b) return -1;
}
0永远比任何其他数字都高而上升到顶部,而5总是比任何其他数字都低并沉到底部。
编辑:首先检查数字是 5 还是 0。
int mycompar(int a, int b) {
if ( a == b ) return 0;
if ( a == 5 || b == 0 ) return -1;
if ( a == 0 || b == 5 ) return 1;
return ( a > b ) ? 1 : -1;
}
此代码应该有效。
以下 C 代码有效:
int mycompar(int a, int b){
int MAX = 5, MIN = 0;
return ( a==MAX || b==MIN ? -1 : ( b==MAX || a==MIN ? 1 : a-b) );
}