冒泡排序的思想就是:大數沉底,小數浮起。 它的做法是:對於n個需要排序的數,每次都把未排序的數中最大的數,放到它最終所在的位置。冒泡排序需要進行n-1趟。
算法的C++語言實現如下:
template <class elemType> void BubbleSort(elemType a[],int length)
{
//外層循環爲n-1趟
for(int i=0;i<length-1;i++)
{
//內層循環每一次讓一個大數沉底
for(int j=0;j<length-1;j++)
{
if( a[j]>a[j+1] )
{
elemType temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
2.選擇排序
選擇排序的思想和選擇排序類似,它每次選擇未排序中最小的數,把它放到最終的位置上。對n個需要排序的數,選擇排序也許要進行n-1趟。用C++實現代碼如下:
template <class elemType> void SelectionSort(elemType a[],int length)
{
//外層循環進行n-1趟
for(int i=0;i<length-1;i++)
{
//標記最小值的位置
int min = i;
for(int j=i+1;j<length;j++)
{
if( a[j]<a[min] )
{
min = j;
}
}
if( min!=i )
{
elemType temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
選擇排序和冒泡排序的時間複雜度都是:O(n^2)。