(1)ソートアルゴリズム:最も単純なソートアルゴリズム------バブルソート

キーポイント:データを左から右にスキャンし、最大のデータを選択して、右側に配置します

 

コード:

#include <iostream>

using namespace std;

void bubble_sort(int list[], int n)
{
	for (int i = 0; i < n - 1; i++)  //比较n-1次
	{
		for (int j = 0; j < n - 1 - i; j++) //每一次循环少比较一次
		{
			if(list[j]> list[j + 1])
				swap(list[j], list[j + 1]);
		}
			
	}

}


int main()
{
	int arry[10] = {2,1,4,5,9,8,6,7,3,0};

	bubble_sort(arry,sizeof(arry)/sizeof(arry[0]));

	for (int i = 0; i < sizeof(arry) / sizeof(arry[0]); i++)
		cout << arry[i] << " ";

	cout << endl;

	return 0;
}

演算結果:

 

バブルソート法の時間計算量:

比較の数:1 + 2 + ... + N-3 + N-2 + N-1 =(1 +(N-1))*(N-1)/ 2 = N ^ 2 / 2-N / 2

交換の数:1 + 2 + ... + N-3 + N-2 + N-1 =(1 +(N-1))*(N-1)/ 2 = N ^ 2 / 2-N / 2

したがって、バブリングの時間計算量は(N ^ 2 / 2-N / 2)+(N ^ 2 / 2-N / 2)= N ^ 2-Nです。

最終的な時間計算量は次のとおりです。O(N ^ 2)

 

 

 

おすすめ

転載: blog.csdn.net/weixin_40204595/article/details/106302772