sort不属于C语言亩御数的标准函数,拆山所以也没有相迅首应的头文件,但是可以自定义。
sort 函数为将整型数组从小到大排序。
voidsort(int*a,intl)//a为数组地址,l为数组长度。
{
inti,j
intv
//排序主体
for(i=0i<l-1i++)
for(j=i+1j<lj++)
{
if(a[i]>a[j])//如前面的比后面的大,则交换。
{
v=a[i]
a[i]=a[j]
a[j]=v
}
}}
扩展资料
c语言自有的qsort函数
#include<stdio.h>
#include<stdlib.h>
intcomp(constvoid*a,constvoid*b)//用来做比较的函数。
{
return*(int*)a-*(int*)b
}
intmain()
{
inta[10]={2,4,1,5,5,3,7,4,1,5}//乱序的数组。
inti
qsort(a,n,sizeof(int),comp)//调用qsort排序
for(i=0i<10i++)//输出排序后的数组
{
printf("%d\t",array[i])
}
return0
}
有几处错误,看注释:
// 头文件写错了#include<iostream>
// 还要引入命名空间
using namespace std
// 参数要用引用或指针,这里使用引用
void swap(int& a, int& b)
{
int t = a
a = b
b = t
}
void bubblesort(int r[], int n)
{
// 冒泡排序逻辑有问题
for (int i = 0 i < n - 1 i++)
for (int j = 0 j <昌轿芦 n - i - 1 j++)
if (r[j] > r[j + 1]) {
swap(r[j], r[j + 1])
}
}
void main(){
int 耐带a[5] = { 28, 15, 30, 6, 22 }
cout << "排序前元素值依次为:'/t'"
for (int i = 0 i<5 i++)
cout << a[i] << " "
cout << endl
bubblesort(a, 5)
cout << "排序后元素值依次为:'/t'"
for (int i = 帆带0 i<5 i++)
cout << a[i] << " "
cout << endl
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)