早教吧作业答案频道 -->数学-->
将顺序表(a1,a2,…,an)重新排列为以a1为界的两部分:a1前面的值均比a1小,a1后面的值都比a1大.
题目详情
将顺序表(a1,a2,…,an)重新排列为以a1为界的两部分:a1前面的值均比a1小,a1后面的值都比a1大.
▼优质解答
答案和解析
#include
//此函数将数列划分成两部分,以数列第一个元素为键值.
void devide(int *a, int n)
{
int i, p = 0, t;
for(i = p + 1; i < n; ++i)
{
// 遍历数列,每当遇到一个比键值小的数时,将其与左边第P个位置上的数字交换,由此保证最左边的P个数均小于键值.
if(a[i] < a[0] && i > ++p)
{
t = a[p];
a[p] = a[i];
a[i] = t;
}
}
// 将第一个元素与第P个元素位置交换,完成整个过程.
if(p > 0)
{
t = a[p];
a[p] = a[0];
a[0] = t;
}
}
// 输出结果
void print(int *a, int n)
{
int i;
for(i = 0; i < n; ++i)
{
printf("%d ", a[i]);
}
}
void main()
{
//初始化数列,此部分可以根据实际需要进行调整
int a[10] = { 5, 1, 2, 9, 6, 4, 3, 7, 8, 0 };
devide(a, 10);
print(a, 10);
sleep(10);
}
//此函数将数列划分成两部分,以数列第一个元素为键值.
void devide(int *a, int n)
{
int i, p = 0, t;
for(i = p + 1; i < n; ++i)
{
// 遍历数列,每当遇到一个比键值小的数时,将其与左边第P个位置上的数字交换,由此保证最左边的P个数均小于键值.
if(a[i] < a[0] && i > ++p)
{
t = a[p];
a[p] = a[i];
a[i] = t;
}
}
// 将第一个元素与第P个元素位置交换,完成整个过程.
if(p > 0)
{
t = a[p];
a[p] = a[0];
a[0] = t;
}
}
// 输出结果
void print(int *a, int n)
{
int i;
for(i = 0; i < n; ++i)
{
printf("%d ", a[i]);
}
}
void main()
{
//初始化数列,此部分可以根据实际需要进行调整
int a[10] = { 5, 1, 2, 9, 6, 4, 3, 7, 8, 0 };
devide(a, 10);
print(a, 10);
sleep(10);
}
看了 将顺序表(a1,a2,…,a...的网友还看了以下:
初一下分式的加减法1.a-b分之a+2b+b-a分之b-a-b分之2a2.xy分之x²+xy-xy 2020-05-13 …
希望有具体过程!1、某人以12元的单价买入某种股票1000股,第二日该股上涨了15%,第3日该股却 2020-05-16 …
..对于我难!(1)2x平方y分之1+3x平方分之2-4xy平方分之3(2)x平方-xy分之y平方 2020-05-21 …
龟兔进行百米赛跑,兔子每分跑25米,乌龟每分跑4米,兔子的跑法是先向前跑1分,然后掉头向后跑2分, 2020-06-03 …
1、x+2分之2x+x-3分之52、2a+2b分之a-b-a的平方-b的平方分之a的平方+b的平方 2020-06-03 …
(1)在公式V=3分之1Sh中,已知V,S,则h=(2)化简下列式子:a²-4a+4分之a-1×2 2020-06-04 …
如果将26个英文字母按从1到26来定分,A=1分,B=2分那么哪个单词是=100分的.以前好像听过 2020-06-24 …
先化简再求值:(a+1分之1-a²-1分之a-2)/a+1分之1其中a=梗号下3+1...先化简再 2020-07-06 …
几道数学题..1:已知a分之一加b分之一等于a加b分之5,则a分之b+b分之a的值是().2:a分 2020-08-03 …
两只青蛙在一条相距102步距离的一条直线上进行跳跃比赛.规则规定:先向前跳1分钟在向后条1分钟,照这 2020-11-22 …