c++实现插排、选择排序、冒泡排序算法
#ifndef BUBBLE_SORT_H_H
#define BUBBLE_SORT_H_H
#include <iostream>
#include <vector>
using namespace std;
/**************************************************************************
* 函 数 名:InsertSortFun
* 描 述 :插排
* 输入参数:1.vecNum 输入需要排序的数组
* 输出参数:无
* 返 回 值:true,查找成功;false,查找失败
* 作 者 :打铁的码农
* 创建日期:2020/4/29 8:35:36
**************************************************************************/
bool InsertSortFun(vector<int> vecNum)
{
if (vecNum.size() < 0 )
{
cout << "Please Check Array Length" << endl;
return false;
}
else
{
int min = 0;
for (int j = 1; j < vecNum.size() ; j++)
{
min = vecNum[j];
int i;
for (i = j; i > 0 && min < vecNum[i-1]; i--)
{
vecNum[i] = vecNum[i-1];
}
vecNum[i] = min;
}
for (vector<int> :: iterator iter = vecNum.begin(); iter != vecNum.end(); iter++)
{
cout << *iter << endl;
}
return true;
}
}
/**************************************************************************
* 函 数 名:SelectSortFun
* 描 述 :选择排序
* 输入参数:1.vecNum 输入需要排序的数组
* 输出参数:无
* 返 回 值:true,查找成功;false,查找失败
* 作 者 :打铁的码农
* 创建日期:2020/4/29 8:35:36
**************************************************************************/
bool SelectSortFun(vector<int> vecNum)
{
if (vecNum.size() <0 )
{
cout << "Please Check Array Length" << endl;
return false;
}
else
{
int min = 0;
for (int j = vecNum.size()-1; j > 0 ; j--)
{
min = j;
for (int i = 0; i < j; i++)
{
if (vecNum[i] < vecNum[min])
{
min = i;
}
}
if (min != j)
{
int temp = vecNum[min];
vecNum[min] = vecNum[j];
vecNum[j] = temp;
}
}
for (vector<int> :: iterator iter = vecNum.begin(); iter != vecNum.end(); iter++)
{
cout << *iter << endl;
}
return true;
}
}
/**************************************************************************
* 函 数 名:BubbleSortFun
* 描 述 :冒泡排序
* 输入参数:1.vecNum 输入需要排序的数组
* 输出参数:无
* 返 回 值:true,查找成功;false,查找失败
* 作 者 :打铁的码农
* 创建日期:2020/4/29 8:35:36
**************************************************************************/
bool BubbleSortFun(vector<int> vecNum)
{
if (vecNum.size() <0 )
{
cout << "Please Check Array Length" << endl;
return false;
}
else
{
bool bChange = true;
for (int j = vecNum.size()-1; j > 0 && bChange; j--)
{
bChange = false;
for (int i = 0; i < j; i++)
{
if (vecNum[i] > vecNum[i+1])
{
int nTemp = vecNum[i];
vecNum[i] = vecNum[i+1];
vecNum[i+1] = nTemp;
bChange = true;
}
}
}
for (vector<int> :: iterator iter = vecNum.begin(); iter != vecNum.end(); iter++)
{
cout << *iter << endl;
}
return true;
}
}
int main(void)
{
vector<int> vecSortFront;
int num;
cout << "Please Input Need Sort Num, Enter is Break:";
while(cin >> num)
{
vecSortFront.push_back(num);
if ('\n' == cin.get())
{
break;
}
}
InsertSortFun(vecSortFront);
system("pause");
return 0;
}
#endif // BUBBLE_SORT_H_H