真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c++常用的排序算法有哪些

小編給大家分享一下c++常用的排序算法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)是一家專業(yè)提供英山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作html5、小程序制作等業(yè)務(wù)。10年已為英山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

c++常用的排序算法

//選擇排序法SelectionSort(int arr[],int n)

template 
void SelectionSort(T arr[],int n)
{
int smallIndex; //表中最小元素的下標(biāo)
int pass,j; //用來掃描子表的下標(biāo)
T temp; //用來交換表元素的臨時(shí)變量
//pass的范圍是0~n-2
for (pass=0;pass

/************************************************************************
雙端選擇排序算法:是上面選擇排序算法的變種,可以定位每個(gè)子表中最小和最大元素
并把它們分別放在子表的開頭和結(jié)尾.
************************************************************************/
//雙端選擇排序算法函數(shù)deSelSort()的實(shí)現(xiàn)

template 
void deSelSort(T arr[],int n)
{
int smallIndex,largeIndex; //表中最小及最大元素的下標(biāo)
int leftPass=0,rightPass=n-1,i,j; //用來從表左邊及右邊掃描子表的下標(biāo) 
T temp; //用于交換元素的臨時(shí)變量
 
while (leftPass<=rightPass)
{
//從左邊及右邊開始掃描子表
smallIndex=leftPass;
largeIndex=rightPass;
//j和i遍歷整個(gè)子表arr[LeftPass]~arr[rightPass]
for (i=leftPass+1;ileftPass;j--)
if(arr[j]>arr[largeIndex])
largeIndex=j;
if(largeIndex!=rightPass)
{
temp=arr[rightPass];
arr[rightPass]=arr[largeIndex];
arr[largeIndex]=temp;
}
//從兩頭收縮子表
leftPass++;
rightPass--;
}
}

c++常用的排序算法有哪些

temp=arr[rightPass];
arr[rightPass]=arr[largeIndex];
arr[largeIndex]=temp;
}
//從兩頭收縮子表
leftPass++;
rightPass--;
}
}

//自編冒泡法排序算法函數(shù)bubbleSort()的實(shí)現(xiàn)

template 
int bubbleSort(T arr[],int n)
{
bool exchanged=false; //是否發(fā)生交換
int i,j; //用于遍歷子表的下標(biāo)
T temp; //用于交換元素的臨時(shí)變量 
//開始遍歷過程,以下標(biāo)j構(gòu)成子表,共有n-1個(gè)子表
for (j=n-1;j>=0;j--) //j從后往前收縮n-1~0,以構(gòu)成子表0~n-1,0~n-2,0~n-3..0~1
{
exchanged=false;
for (i=0;iarr[i+1])
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
exchanged=true;
}
}
if (!exchanged) return n-j-1;//如果在一次遍歷中沒有發(fā)生交換,則表示已經(jīng)
 //排序好,中斷遍歷過程
}
return n-1-j;
}

//冒泡法排序一般算法函數(shù)bubbleSortEx()的實(shí)現(xiàn)

template 
int bubbleSortEx(T arr[],int n)
{
int i,pass; //用于遍歷子表的下標(biāo)
T temp; //用于交換元素的臨時(shí)變量
//開始遍歷過程,以下標(biāo)j構(gòu)成子表,共有n-1個(gè)子表
for (pass=0;passarr[i+1])
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
return pass;
}

以上是“c++常用的排序算法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章題目:c++常用的排序算法有哪些
轉(zhuǎn)載源于:http://weahome.cn/article/pdggcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部