//数列排序
#include<iostream>
using namespace std;
int GetBit() //数组长度
{
int bit;
cin >> bit;
while (bit < 1 || bit > 200)
{
cout << "输入错误,重新输入:" << endl;
cin >> bit;
}
return bit;
}
int* GetArray(int n) //获得空间
{
int* pa = new int [n],num;
pa[n] = '\0';
for (int i = 0; i < n; i++)
{
cin >> num;
while (num >= 10000)
{
cout << "输入错误,重新输入:" << endl;
cin >> num;
}
pa[i] = num;
}
return pa;
}
void Sort(int* p, int n) //鸡尾酒排序
{
int temp,j=0;
for (int i = n - 1; i >= 0; i--)
{
for (; j < i - 1; j++)
{
if (p[j] > p[j + 1])
{
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
if (p[i - j] < p[i - j - 1])
{
temp = p[i - j];
p[i - j] = p[i - j - 1];
p[i - j - 1] = temp;
}
}
j++;
}
}
void Display(int* p, int n) //显示
{
for (int i = 0; i < n; i++)
cout << p[i] << " ";
cout << endl;
}
int main()
{
int bit = GetBit();
int* pa = GetArray(bit);
Sort(pa, bit);
Display(pa, bit);
delete[] pa;
cin.get();
cin.get();
return 0;
}
【C++】鸡尾酒算法排序
最新推荐文章于 2024-07-27 21:19:51 发布