void selection(int *a, int length)//选择排序
{
for (int i = 0; i < length - 1; i++)
{
int pass = i;
for (int j = i + 1; j < length; j++)
if (*(a + pass) < *(a + j))
pass = j;
if (pass != i)
{
int temp = *(a + i);
*(a + i) = *(a + pass);
*(a + pass) = temp;
}
}
}
void exchange(int *a, int length)//交换排序
{
for (int i = 0; i < length - 1; i++)
{
for (int j = i + 1; j < length; j++)
if (*(a + i) < *(a + j))
{
int temp = *(a + i);
*(a + i) = *(a + j);
*(a + j) = temp;
}
}
}
void bobble(int *a, int length)//冒泡排序
{
for (int i = 1; i < length; i++)
{
bool exchange = 0;//哨兵
for (int j = 0; j < length - i; j++)
if (*(a + j) < *(a + j + 1))
{
int temp = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = temp;
exchange = 1;
}
if (exchange == 0)
break;
}
}
void insert(int *a, int length)//插入排序
{
for (int i = 1; i < length; i++)
{
int temp = *(a + i);
for (int j = i - 1; j >= 0 && *(a + j) < temp; j--)
{
*(a + j + 1) = *(a + j);
*(a + j ) = temp;
}
}
}
c++ ——基本排序(选择排序,交换排序,冒泡排序,插入排序)
最新推荐文章于 2025-04-11 21:25:29 发布