经典排序算法
下面的几种排序算法都是非常经典的排序算法。
1) 冒泡排序(Bubble Sort)
2) 选择排序(Select Sort)
3) 插入排序(Insert Sort)
void Bubble_Sort(int Arr[], int nLen)
{
int i = 0;
int j = 0;
if (NULL == Arr || nLen <= 0)
{
return;
}
for (i = 0; i < nLen-1; i++)
{
for (j = i+1; j < nLen-i; ++j)
{
if (Arr[i] > Arr[j])
{
Swap(Arr[i], Arr[j]);
}
}
}
}
void Select_Sort(int Arr[], int nLen)
{
if (NULL == Arr || nLen <= 0)
{
return;
}
int i = 0;
int j = 0;
int nMin;
for (; i < nLen-1; i++)
{
int nMin = i;
// 这一趟循环里选出最值
for (j = i+1; j < nLen; j++)
{
if (Arr[nMin] > Arr[j])
{
nMin = j;
}
}
// 将选出的最值进行交换
if (nMin != i)
{
Swap(Arr[i], Arr[j]);
}
}
}
void Insert_Sort(int Arr[], int nLen)
{
if (NULL == Arr || nLen <= 0)
{
return;
}
// 循环从第二个数组元素开始
for (int i = 1; i < nLen; i++)
{
int nTmp = Arr[i];
// 从最邻近的一个一直往前查找
int index = i-1;
while ((Arr[index] > nTmp)&&(index >= 0))
{
// 数据往后迁移
Arr[index+1] = Arr[index];
index--;
}
Arr[index+1] = nTmp;
}
}
浙公网安备 33010602011771号