编写一个sort函数,对一维数组的前n个元素从小到大排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个sort函数,对一维数组的前n个元素从小到大排序相关的知识,希望对你有一定的参考价值。

编写一个sort函数,对一维数组的前n个元素从小到大排序
帮忙看看哪里不对

你这个真的能排序吗.......

最简单的选择排序:

假定:从大到小排序

1:在当前序列中选出最大的元素索引

2:与前面的交换位置

for(int i=0;i<n;++i)
    int index=i;
    for(int j=i+1;j<n;++j)
        if(a[index]<a[j])
            index=j;
        
    
    if(index!=i)
        swap(a[index],a[i]);
    

参考技术A printf("%d ",a[i]);

追问

哦哦,真是谢谢

能运行出来了

本回答被提问者采纳
参考技术B printf("%d ",a[i]) 没有 & 参考技术C printf("%d ",a[i]);

6.1写sort函数对n个元素的整数数组n,按从小到大排序

#include<iostream>
using namespace std;
#define n 10
void sort(int a[]);
int main()
{
int a[n];
int i;
for(i=0;i<n;i++)
{
cout<<"请输入a["<<i+1<<"]"<<"的值"<<endl;
cin>>a[i];
}
sort(a);
for(i=0;i<n;i++)
cout<<a[i]<<"    ";
cout<<endl;
return 0;
}
//采用原始冒泡排序
void sort(int a[])
{
	int i,j,min;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
	if(a[j]>a[j+1])
{
min=a[j];
a[j]=a[j+1];
a[j+1]=min;
}
}
}
}
/*暴力排序
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
min=a[j];
a[j]=a[i];
a[i]=min;
}*/

  技术分享图片

 

以上是关于编写一个sort函数,对一维数组的前n个元素从小到大排序的主要内容,如果未能解决你的问题,请参考以下文章

C语言一维数组排序

1119: 一维数组排序

ZZNUOJ_C语言1119:一维数组排序(完整代码)

编写一个函数SORT将放到一位数组中的若干个数安从小到大的顺序排序

6.1写sort函数对n个元素的整数数组n,按从小到大排序

编写对具有n个元素的一维数组求和函数ArraySum()