當前位置:首頁 » 編程語言 » c語言sort頭文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言sort頭文件

發布時間: 2022-02-09 16:10:17

1. 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

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

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

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

3. c語言中的sort函數怎麼使用,請舉出一個實例,非常感謝!

#include<algorithm>//需要包含這個頭文件
#include<iostream>
usingnamespacestd;
intmain(void)
{
inta[10]={2,4,8,5,7,1,10,6,9,3};
sort(a,a+10);//對a數組進行升序排序
for(inti=0;i<10;i++)
cout<<a[i]<<endl;
}

//ps:這是C++的函數C語言里沒有。

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

5. C語言中有sort函數嗎

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

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

7. C語言中有sort函數嗎,該如何解決

沒有就自己去實現咯,要麼去找別人寫的那些現成的庫

8. 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(" ");
    }