c语言直接调用排列函数 c语言全排列代码( 二 )


对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序c语言直接调用排列函数了 。
(一)为什么要用c++标准库里的排序函数
Sort()函数是c++一种排序方法之一 , 学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题c语言直接调用排列函数!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高c语言直接调用排列函数!
(二)c++标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#includealgorithm的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址 。
(2)第二个是结束的地址(最后一位要排序的地址的下一地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序 。
Sort函数使用模板:
Sort(start,end,排序方法)
下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大
#includeiostream
#includealgorithm
using namespace std;
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i10;i++)
couta[i]endl;
sort(a,a+11);
for(int i=0;i10;i++)
couta[i]endl;
return 0;
}
编译器
GCC,GNU组织开发的开源免费的编译器
MinGW,Windows操作系统下的GCC
Clang,开源的BSD协议的基于LLVM的编译器
Visual C++ :: cl.exe , Microsoft VC++自带的编译器
集成开发环境
CodeBlocks,开源免费的C/C++ IDE
CodeLite,开源、跨平台的C/C++集成开发环境
Orwell Dev-C++,可移植的C/C++IDE
C-Free
Light Table
Visual Studio系列
Hello World
参考资料:百度百科-sort函数
C语言编写一个函数排序调用#includestdio.h
void sortP(int p[])
{
int i,k;
int *fir; // 首位数c语言直接调用排列函数的指针
int *cur; // 当前数的指针
int *max; // 最大数的指针
int tmp; // 交换数字的临时变量
fir=p;
for (i=0;i9;i++)// 10个数字c语言直接调用排列函数,从 0 -- 9
{
max=fir;// 最大值默认为第一个
cur=fir+1;// 从第二个数字开始比较
for (k=i;k10;k++) // 一直到最后一个
{
if(*cur*max) max=cur; // 把最大数值的指针保存到 max 指针
cur++;// 下一个数字
}
tmp=*fir;// 把最大数字和首位的数字交换,
*fir=*max;
*max=tmp;
fir++;// 比较下一个数字
}
}
int main(void)
{
int a[10],*p;
int i;
p=a;// 把指针指向数组首位
printf("请输入10个整数c语言直接调用排列函数: ");
for (i=0;i10;i++)
{
scanf("%d",p);
p++;
}
printf("\n\n排序后的10个数字是c语言直接调用排列函数:\n");
p=a;// 重新把指针指向数组首位
sortP(p);
for (i=0;i10;i++)
{
printf("%d",*p);
p++;
}
printf("\n");
return 0;
}
C语言:输入5个数 , 用调用函数的方法,从小到大排序 用简单点的#includestdio.h
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; in-1; i++)
for(j=0; jn-i-1; j++)
if(a[j]a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
void main()
{

推荐阅读