这个写了蛮长时间的,主要是在想如何让程序判断不是一种排序后检查是不是另一种排序,我想出的这个方法可能不是最优的,如果谁有更好的办法,请留言告诉我。
**仅给有需要的人以参考,如有错误请纠正我**
#include<iostream>
template<typename T>
bool is_sorted(T arr[], int n)
{
T temp;
int i;
for (i = 0; i < n; i++)
{
temp = arr[i];
if (i == n - 2)
{
if (temp >= arr[i + 1])
return true;
else
break;
}
if (temp > arr[i + 1])
continue;
}
for (i = 0; i < n; i++)
{
temp = arr[i];
if (i + 1 == n)
break;
if (temp <= arr[i + 1])
continue;
else
return false;
}
return true;
}
int main()
{
using namespace std;
int arr[5] = { 20, 20, 30, 50, 60 };
if (is_sorted(arr, 5))
cout << "true\n";
else
cout << "false\n";
return 0;
}