c語(yǔ)言sort的作用 C語(yǔ)言數(shù)組排序方法?
C語(yǔ)言數(shù)組排序方法?c語(yǔ)言對(duì)數(shù)組元素大小排序:下面是冒泡排序法,實(shí)線數(shù)組從小到大排序。思想:每次比較兩個(gè)相鄰的數(shù)字,如果按升序排列,最大的數(shù)字放在后面,一個(gè)循環(huán)后,最大的數(shù)字放在最后。10、2、3、4
C語(yǔ)言數(shù)組排序方法?
c語(yǔ)言對(duì)數(shù)組元素大小排序:下面是冒泡排序法,實(shí)線數(shù)組從小到大排序。思想:每次比較兩個(gè)相鄰的數(shù)字,如果按升序排列,最大的數(shù)字放在后面,一個(gè)循環(huán)后,最大的數(shù)字放在最后。
10、2、3、4、5、6、9、8、7和1是要排序的輸入序列。第一次排序后,最大的10放在最后,第二次排序,剩余的2、3、4、5、6、9、8、7、1冒泡,加上當(dāng)前最大的9。以下是具體代碼:
#包括
c排序—sort()函數(shù)?
首先,sort()是C和java中對(duì)數(shù)組元素排序的方法,包含在頭文件算法中。
返回值:
對(duì)數(shù)組的引用。請(qǐng)注意,該數(shù)組是按原始數(shù)組排序的,不會(huì)生成副本。
描述:
如果不帶參數(shù)調(diào)用該方法,數(shù)組中的元素將按字母順序排序,或者更準(zhǔn)確地說(shuō),按字符編碼的順序排序。要實(shí)現(xiàn)這一點(diǎn),您應(yīng)該首先將數(shù)組的所有元素轉(zhuǎn)換為字符串(如果需要的話)以便進(jìn)行比較。
如果希望按其他標(biāo)準(zhǔn)排序,需要提供一個(gè)比較函數(shù),該函數(shù)比較兩個(gè)值,然后返回一個(gè)數(shù)字來(lái)解釋這兩個(gè)值的相對(duì)順序。比較函數(shù)應(yīng)該有兩個(gè)參數(shù),a和b,其返回值如下:
如果A小于B,在排序后的數(shù)組中A應(yīng)該出現(xiàn)在B之前,返回小于0的值。
如果a等于b,則返回0。(此時(shí)不排序)
如果a大于b,則返回大于0的值。
程序示例:
在本例中,我們將創(chuàng)建一個(gè)數(shù)組,并按字母順序?qū)ζ溥M(jìn)行排序:
scripttypetext/JavaScript vararrnewarray(6)arr[0]Georgearr[1]John arr[2]Thomas arr[3]Jamesarr[4]Adrewarr[5]Martin document . write(arr br/)document . write(())/script
輸出:
喬治,約翰,托馬斯,詹姆斯,阿德瑞,馬丁阿德瑞,喬治,詹姆斯,約翰,馬丁,托馬斯
第二,partial_sort是C STL中的一個(gè)函數(shù)。
函數(shù)原型包括:
partial_sort(beg,mid,end)
partial_sort(beg,mid,end,comp)
功能函數(shù):
對(duì)mid-beg元素進(jìn)行排序,例如如果mid-beg等于42,該函數(shù)會(huì)將有序序列中的最小元素放入序列中。
前42個(gè)位置。partial_sort完成后,對(duì)beg到mid(但不包括mid)范圍內(nèi)的元素進(jìn)行排序,但不在排序范圍內(nèi)。
元素大于mid之后的元素。未排序元素之間的順序未指定。
程序示例:
# includevector
# include運(yùn)算符
#includeiostream
#包含算法
#包含功能
#includecstdlib
#includetime.h
usingnamespacestd
intrand_int()
{
returnrand()0;
}
void print(vector ntv,constchar*s)
{
coutsendl
copy((),v.end(),ostream_iteratorint(cout,);
coutendl
}
boolcmp(inta,intb)
{
如果(ab)
returntrue
返回false;
}
類別比較{
public:
booloperator()(constinta,constintb)
{
如果(ab)
returntrue
返回false;
}
};
intmain()
{
srand(time(NULL));
vectorintv
generate_n(back_inserter(v),10,rand _ int);
打印(v,生成10個(gè)隨機(jī)數(shù));
partial_sort((),()4,v . end());
Print(v,局部升序排序);
partial_sort((),()4,v.end(),CMP);
Print(v,局部降序排序);
partial_sort((),()4,v.end(),compare());
Print(v,局部升序排序);
return0
}