當前位置:首頁 » 編程語言 » c語言sort

c語言sort

發布時間: 2022-01-10 16:45:02

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;

}

(1)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

② sort函數在C語言中如何使用

排序(sort)
語法:
void sort();
void sort( Comp compfunction );

sort()函數為鏈表排序,默認是升序。如果指定compfunction的話,就採用指定函數來判定兩個元素的大小。

③ C語言程序設計sort功能

  1. 最簡單的冒泡排序

  2. 冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序演算法

    它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。

    這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名.

  3. 冒泡排序演算法的運作如下:(從後往前)

    1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

    2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最3.後的元素應該會是最大的數。

    4.針對所有的元素重復以上的步驟,除了最後一個。

    5.持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

  4. #include<stdio.h>
    #defineSIZE10

    voidbubble_sort(inta[],intn);

    voidbubble_sort(inta[],intn)
    {
    inti,j,temp;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    {
    if(a[i]<a[j])//注意排序是小的冒起來,大的往下,即大的在前,小的在後
    {
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
    }
    }
    }

    intmain()
    {
    intnumber[SIZE]={1,2,3,4,5,6,7,8,9,10};
    inti;
    bubble_sort(&number[3],5);//注意,排序范圍是從4-8
    for(i=0;i<SIZE;i++)
    {
    printf("%d",number[i]);//結果是C
    }
    printf(" ");
    }

④ 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

void menu()
{
cout<<"菜單:增加(Add)刪除(Delete)排序(Sort)退出(Quit)請選擇:"<<endl;
char n;
cin>>n;
switch(n)
{
case 'A':cout<<"數據已增加"<<endl;break;
case 'D':cout<<"數據已刪除"<<endl;break;
case 'S':cout<<"數據已排序"<<endl;break;
case 'Q':exit(0);break;
}
}

⑥ 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]);}

⑦ C語言中有sort函數嗎

#include <stdlib.h>
然後可以用qsort
是用款蘇排序演算法實現的。

⑧ 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升序排列
}

⑨ C語言問題SORT函數

樓上兩位好像都有問題,這個函數傳的是數組首地址,所以不需要
返回值

for循環
是需要
大括弧
的。
改了一下:
void
sort(int
array[],int
n)
{
int
i,j,k,temp;
for(i=0;i<n-1;i++)
{k=i;
for(j=k+1;j<n;j++)
if(array[k]>array[j])
k=j;
temp=array[i];
array[i]=array[k];
array[k]=temp;
}
}

⑩ 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 的說明。

熱點內容
訪問攔截怎麼解除安卓 發布:2024-09-20 17:28:48 瀏覽:273
蘿卜干存儲 發布:2024-09-20 17:21:37 瀏覽:714
蘋果手機如何遷移軟體到安卓手機 發布:2024-09-20 17:21:34 瀏覽:691
查看伺服器ip限制 發布:2024-09-20 16:56:27 瀏覽:388
p搜系統只緩存1頁為什麼 發布:2024-09-20 16:48:51 瀏覽:838
上網的賬號和密碼是什麼東西 發布:2024-09-20 16:31:31 瀏覽:612
安卓手機王者榮耀如何調超高視距 發布:2024-09-20 16:31:30 瀏覽:428
安卓G是什麼app 發布:2024-09-20 16:23:09 瀏覽:81
iphone怎麼壓縮文件 發布:2024-09-20 16:08:18 瀏覽:356
linux查看用戶名密碼是什麼 發布:2024-09-20 16:03:20 瀏覽:744