c語言sort排序
❶ 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語言. .編寫一個Sort函數,完成對整型數組元素升序排列。
#include<stdio.h>
voidsort(inta[],intn){//選擇排序
inti,j,k,t;
for(i=0;i<n-1;++i){
k=i;
for(j=k+1;j<n;++j){
if(a[k]>a[j])k=j;
}
if(k!=i){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
intmain(){
inta[]={21,16,30,21,8,19,33,26,28,27,24,50,13,12};
inti,n=sizeof(a)/sizeof(a[0]);
printf("排序前:
");
for(i=0;i<n;++i)
printf("%d",a[i]);
printf("
");
sort(a,n);
printf("排序後:
");
for(i=0;i<n;++i)
printf("%d",a[i]);
printf("
");
return0;
}
❸ 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;
}
}}
(3)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;
}
❹ 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 的說明。
❺ C語言編程創建自定義函數sort(),sort函數中實現選擇法升序排序,主函數輸出排序後的數組元素
#include<stdio.h>
//選擇排序演算法,升序
voidsort(int*arr,intn)
{
inti,j,k;
inttmp;
for(i=0;i<n-1;i++)
{
k=i;//開始一趟選擇排序,假定第i個元素是後面n-i+1個未排序的元素中最小的元素
for(j=i+1;j<n;j++)
{
if(arr[k]>arr[j])//如果發現比當前最小元素還小的元素,則更新記錄最小元素的下標k
k=j;
}
//如果最小元素的下標不是後面n-i+1的未排序序列的第一個元素,則需要交換第i個元素和後面找到的最小元素的位置
if(k!=i)
{
tmp=arr[k];
arr[k]=arr[i];
arr[i]=tmp;
}
}
}
intmain()
{
inta[10]={-5,-9,-8,3,9,2,-28,101,-395,0};
inti;
sort(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf(" ");
return0;
}
//運行結果
F:c_work>a.exe
-395-28-9-8-50239101