参考《大话数据结构》,博主自己敲了遍排序算法,希望对面试者、学习者有些参考作用。
#include <vector>
#include <iostream>
using namespace std;
void CoutBuf(int *buf,int m)
{
for (int i = 0; i < m-1; i++)
{
cout << buf[i] << ",";
}
cout << buf[m - 1] << endl;
}
void BubbleSort(int *buf, int m)
{
int flag = 1;
for (int i = 0; i < m-1 && flag ; i++)
{
flag = 0;
for (int j = m - 2; j >= i; j--)
{
if (buf[j]>buf[j + 1])
{
swap(buf[j], buf[j + 1]);
flag = 1;
}
}
}
}
void swap(int &buf, int &buf1)
{
int temp = buf;
buf = buf1;
buf1 = temp;
}
void SelectSort(int *buf, int m)
{
for (int i = 0; i < m; i++)
{
int min = i;
for (int j = i + 1; j < m; j++)
{
if (buf[j] < buf[min])
min = j;
}
if (min != i)
{
swap( buf[min], buf[i]);
}
}
}
void InsertSort(int *buf, int m)
{
int i, j ,temp;
for ( i = 1; i < m; i++)
{
if (buf[i] < buf[i - 1])
{
temp = buf[i];
for (j = i; buf[j-1]>temp && j>0; j--)
buf[j] = buf[j-1];
buf[j] = temp;
}
}
}
int main()
{
int buf[] = { 100,12, 3, 6, 9, 2, 6 };
int m = sizeof(buf) / sizeof(int);
cout << "sort before:";
CoutBuf(buf, m);
cout << "sort after:"<<" ";
//BubbleSort(buf,m);
//SelectSort(buf,m);
InsertSort(buf, m);
CoutBuf(buf, m);
system("pause");
return 0;
}