まず、私は C を初めて使用するので、私のアプローチは基本的なものです。ソートされた配列が回転されたポイントをチェックしようとしています。たとえば、(1 2 4 5 9) は (5 9 1 2 4) になります。配列を 2 つのサブ配列に「分割」して、[0] から開始して 1 つずつ増加するものと、[4] から開始して 1 ずつ減少するものをチェックしようとしています。これが私がこれまでに持っているものです:
#define size 5
int main(void)
{
int x, i, j, start, end;
int array1[size]= {4, 8, 0, 1, 3};
start = 0;
end = size -1;
while(start < end)
{
if (array1[start] < array1[end])
start++;
end--;
私が抱えている質問のいくつかは、私のアプローチが (外側から内側へ) 良いかどうか、または途中から始めて解決する必要があるかどうかです。また、ピボットが実際に発生する場所の決定をどのようにコーディングしますか。SO で C++ に関するいくつかの回答が表示されますが、C について明確な回答があまり見られないため、質問することにしました。アドバイスをいただければ幸いです。