返回乙個陣列需要排序的最短長度

2021-08-19 17:43:04 字數 652 閱讀 3772

#include

#include

using namespace std;

int getminlength(int* arr, int l)

//按照增序排列得話, 如果乙個陣列最後一位用min表示,沒有亂序,應該不會存在arr[i]大於min得情況,如果存在,則需要進行排序

int  min = arr[l - 1];  

int nominindex = -1; 

for(int i = l -2; i != -1; i--)else

}if(nominindex == -1)

int max = arr[0];

int nomaxindex = -1;

for(int i = 1; i != l; i++)else

/*if(nomaxindex == -1)*/  //這個語句不用寫是因為,在前一步已經進行判斷,如果有序,直接已經退出了,無需進行下面得判斷

return nomaxindex -nominindex +1;

}int main();

int length = getminlength(arr,sizeof(arr)/sizeof(int));

std::cout<< length<< std::endl;

}

需要排序的最短子陣列的長度

演算法描述 1.從左往右找 當前值比max小 的一系列情況 初始 max arr 0 如果當前元素比max大,max就等於當前元素 如果當前元素比max小,max不變,然後繼續往後找,直到最後一次出現 當前值比max小 的情形,記下此時的下標為k。2.從右往左找 當前值比min大 的一系列情況 初始...

c 返回乙個陣列

bqg s complexity analysis 最近遇到乙個很不一般的事情,返回乙個陣列時,我們可以直接返回它的首位址,但是如果呼叫兩次以上,返回的數值就是有問題的了。呼叫兩次js 函式,分別用a b陣列存放返回的陣列值,但是接收到返回的數值居然和我返回前存放的數值不一樣。及改善 include...

演算法 需要排序的最短子陣列長度

給定乙個無序陣列,求出需要排序的最短子陣列的長度。例如 arr 返回4,因為只有 5,3,4,2 需要排序。解決這個問題可以在時間複雜度為o n 額外空間複雜度為o 1 完成。初始化變數nominindex 1,從右向左遍歷,便利的過程記錄右側出現過的數的最小值,記為min。假設當前數為arr i ...