七星关雎 2021-07-09 16:08 采纳率: 0%
浏览 17

代码1算是排序法吗?不太自信。

代码1:
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}

    }

代码1能运行出来,但和教材(C程序设计第五版)不太一样,和冒泡法又极其类似,大一刚学C语言,没有自信,
请教!

代码2(教材144页所给的冒泡法):

for(j=0;j<9;j++) // 进行9次循环,实现9趟比较
for(i=0;i<9-j;i++) // 在每一趟中进行9-j次比较
if (a[i]>a[i+1]) // 相邻两个数比较
{t=a[i];a[i]=a[i+1];a[i+1]=t;}

代码3(教材194页所给的排序法):
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];array[k]=array[i];array[i]=t;

代码4(教材243页所给的排序法):
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
if(k!=i) //这一句代码3里没有
{t=x[i];x[i]=x[k];x[k]=t;}

  • 写回答

3条回答 默认 最新

  • 关注

    是冒泡排序和插入排序,2中排序方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月9日