よく使われるいくつかのソートアルゴリズムC++実装(バブルソート、挿入ソート、選択ソート)
1295 ワード
ソース:
#include
#include
#include
using namespace std;
// , ,O(n^2)
vector bubbleSort(vector& nums)
{
for (int i = 0; i < nums.size(); i++)
{
for (int j = 0; j < nums.size() - 1 - i; j++)
{
if (nums[j]>nums[j + 1])
{
int tmp = nums[j + 1];
nums[j + 1] = nums[j];
nums[j] = tmp;
}
}
}
return nums;
}
// , O(n^2)
vector selectionSort(vector& nums)
{
for (int i = 0; i < nums.size() - 1; i++)
{
for (int j = i + 1; j < nums.size() - 1; j++)
{
if (nums[i] > nums[j])
{
int tmp = nums[j];
nums[j] = nums[i];
nums[i] = tmp;
}
}
}
return nums;
}
//
vector insertionSort(vector& nums)
{
int num = nums.size() - 1;
for (int i = 1; i0 && temp < nums[j - 1]; j--)
{
nums[j] = nums[j - 1];
}
nums[j] = temp;
}
return data;
}
int main()
{
vector nums = {1,3,5,2,7,8,12};
vector result = insertionSort(nums);
for (int i = 0; i < result.size(); i++)
{
cout << result[i] << endl;
}
system("pause");
return 0;
}