c語言sort函數
A. c語言 編寫函數sort(int*x,int n)函數
#include<stdio.h>
#include<stdlib.h>
voidsort(int*x,intn)
{
inti,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(abs(*(x+j))>abs(*(x+j+1))){
t=*(x+j);
*(x+j)=*(x+j+1);
*(x+j+1)=t;
}
}
intmain()
{
intn,i;
scanf("%d",&n);
intx[80];
for(i=0;i<n;i++)
scanf("%d",&x[i]);
sort(x,n);
for(i=0;i<n;i++)
printf("%d",x[i]);
return0;
}
B. sort函數在C語言中的作用是啥
1、sort()函數描述:對給定區間所有元素進行排序。
sort()函數語法:sort(begin,end),表示一個范圍。
2、sort()函數舉例:
#include<algorithm>
#include<iostream>
usingnamespacestd;
main()
{
inta[11]={2,4,8,5,7,1,10,6,9,3};//a的長度=待排數據個數+1
sort(a,a+10);//對[a,a+10)排序
for(inti=0;i<10;++i)cout<<a[i]<<endl;
}
C. C語言怎麼使用sort函數,求舉個簡單的例子,謝謝
用 qsort,並且要自己寫比較函數。
例如:有個 int a[1000] 的數組要排序。而比較函數你已經寫好了名字是 comp,則這樣寫:
qsort(a,1000,sizeof(int),comp);
比較函數 comp 如下:
intcomp(constvoid*a,constvoid*b)
{
return*(int*)a-*(int*)b;
}
詳細的可以查一下關於 qsort 的說明。
D. c語言數組用sort函數排序
#include<stdio.h>
#include<algorithm>
main(){
int a[10]={10,9,8,7,6,5,4,3,2,1};
std::sort(a,a+10);
for(int i=0;i<10;i++)
printf("%d\t",a[i]);}
E. c語言運用sort 排序函數,需要的頭文件是什麼
sort不屬於C語言的標准函數,所以也沒有相應的頭文件,但是可以自定義。
sort函數為將整型數組從小到大排序。
voidsort(int*a,intl)//a為數組地址,l為數組長度。
{
inti,j;
intv;
//排序主體
for(i=0;i<l-1;i++)
for(j=i+1;j<l;j++)
{
if(a[i]>a[j])//如前面的比後面的大,則交換。
{
v=a[i];
a[i]=a[j];
a[j]=v;
}
}}
(5)c語言sort函數擴展閱讀
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=0;i<10;i++)//輸出排序後的數組
{
printf("%d ",array[i]);
}
return0;
}
F. sort什麼意思c語言
C語言標准庫中沒有sort,sort是C++標准庫裡面的函數,在頭文件algorithm中,用於排序,一般這樣使用:
inta[10]={2,4,1,5,6,3,0,9,8,7};
sort(a,a+10);//升序排列
有時需要自定義一個比較函數:
boolcmp(inta,intb){
returna>b;
}
intmain(){
inta[10]={2,4,1,5,6,3,0,9,8,7};
sort(a,a+10,cmp);//降序排列
}
也可以利用比較函數排序自定義類型:
structA{
intx,y;
};
boolcmp(Ax,Ay){
if(A.x!=B.x)returnA.x<B.x;
returnA.y<B.y;
}
intmain(){
Aa[3]={{1,3},{2,3},{2,4}};
sort(a,a+3,cmp);//按x升序排列,若x相同按y升序排列
}
G. C語言中sort函數定義的原理
這是一個選擇排序的函數。
用sort(a,3);調用時,
第一輪內循環後,k=2
交換後,a數組成為:5,7,9
第二輪內循環後,k=1
實際並沒有交換。
sort()返回後,a數組就是5,7,9
H. sort函數在C語言中如何使用
排序(sort)
語法:
void sort();
void sort( Comp compfunction );
sort()函數為鏈表排序,默認是升序。如果指定compfunction的話,就採用指定函數來判定兩個元素的大小。
I. C程序 sort函數
C語言中沒有預置的sort函數。如果在C語言中,遇到有調用sort函數,就是自定義的一個函數,功能一般用於排序。
一、可以編寫自己的sort函數。
如下函數為將整型數組從小到大排序。
voidsort(int*a,intl)//a為數組地址,l為數組長度。
{
inti,j;
intv;
//排序主體
for(i=0;i<l-1;i++)
for(j=i+1;j<l;j++)
{
if(a[i]>a[j])//如前面的比後面的大,則交換。
{
v=a[i];
a[i]=a[j];
a[j]=v;
}
}}對於這樣的自定義sort函數,可以按照定義的規范來調用。
二、C語言有自有的qsort函數。
功 能: 使用快速排序常式進行排序
頭文件:stdlib.h
原型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
參數:
1 待排序數組首地址
2 數組中待排序元素數量
3 各元素的佔用空間大小
4 指向函數的指針,用於確定排序的順序
這個函數必須要自己寫比較函數,即使要排序的元素是int,float一類的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=0;i<10;i++)//輸出排序後的數組
{
printf("%d ",array[i]);
}
return0;
}(9)c語言sort函數擴展閱讀:
sort函數的用法(C++排序庫函數的調用)
對數組進行排序,在c++中有庫函數幫我們實現,這們就不需要我們自己來編程進行排序了。
(一)為什麼要用c++標准庫里的排序函數
Sort()函數是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的冒泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間復雜度為n*log2(n),執行效率較高!
(二)c++標准庫里的排序函數的使用方法
I)Sort函數包含在頭文件為#include<algorithm>的c++標准庫中,調用標准庫里的排序方法可以不必知道其內部是如何實現的,只要出現我們想要的結果即可!
II)Sort函數有三個參數:
(1)第一個是要排序的數組的起始地址。
(2)第二個是結束的地址(最後一位要排序的地址的下一地址)
(3)第三個參數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數,此時默認的排序方法是從小到大排序。
Sort函數使用模板:
Sort(start,end,排序方法)
下面就具體使用sort()函數結合對數組里的十個數進行排序做一個說明!
例一:sort函數沒有第三個參數,實現的是從小到大
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
sort(a,a+11);
for(int i=0;i<10;i++)
cout<<a[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
J. c語言中如何實現從鍵盤中輸入一個字元串設計函數sort函數實現該串中字元按從大到小輸出
#include<stdio.h>
#include<string.h>
int sort(char a[])
{
for(int i=0;i<strlen(a);i++)
for(int j=0;j<strlen(a)-i-1;j++)
if(a[j]<a[j+1])
{
char t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(int i=0;i<strlen(a);i++)
printf("%c ",a[i]);
}
int main()
{
char a[111];
gets(a);
sort(a);//調用函數
return 0;
}