神州資訊校招 陣列排序輸出最小的操作次數

2021-10-09 17:26:09 字數 1135 閱讀 8011

有一組n個數,想將數進行從小至大排好序,但是只能通過下面的操作進行排序:任取陣列中的乙個數然後將它放置在陣列的最後乙個位置。問最少操作多少次可以使得陣列從小到大進行有序?

輸入描述

首先輸入n個數。(4<=n<=50,每個數的絕對值小於500)輸出描述

輸出乙個整數表示最少的操作次數。

輸入

「19 5 9 255」

輸出

這題目之前在別的地方見到過,輸入n之後再輸入n個數,排序,方法很簡單。不過這次它寫好了框架

class solution

};

因為這個框架的問題,之前的題目解法都用不成,首先是需要把string 的輸入改為int陣列進行排序,其次因為函式名就叫做sort,所以#include 裡面的sort排序就用不了,這裡加了氣泡排序來進行。

但是他輸入乙個字串,n的存在就毫無意義了。不懂是改題目改出問題了還是怎麼回事。

#include

#include

#include

#include

using

namespace std;

intmain()

string a_temp = a.

substr(0

, a.

find

(" "))

; arr.

push_back

(stoi

(a_temp));

a.erase(0

, a.

find

(" ")+

1);}

int n =0;

int i, j, key;

for(i =

1; i < arr.

size()

; i++

) arr[j +1]

= key;

}/*for (vector ::iterator it = arr.begin(); it != arr.end(); it++)

*/cout << n << endl;

return0;

}

輸出非減排序陣列旋轉後的最小值

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如數 組為的乙個旋轉,該陣列的最小值為1。note 給出 的所有元素都大於0,若陣列大小為0,請返回0。1.遍歷整個陣列,找到最小值,通過比較找到最小值,該方法太蠻力。2.根...

對學生的資訊按成績進行排序輸出

對50個學生的記錄 包括學生的姓名和成績 組成記錄陣列,用簡單選擇法按成績從高到低的次序輸出 每行輸出5個 include define n 10 struct student information n 定義乙個結構體資料型別,存放學生的姓名和成績 void selectionsort stude...

將陣列排序所需的最小交換次數

給出乙個具有n個不同值的陣列a,找出將陣列排序所需的最小交換次數。第一行包含乙個整數t,表示測試用例的數量。接下來會有t個測試用例,對於每個測試用例,包含乙個整數n表示陣列a中元素的個數,接下來一行為陣列a,包含n個用空格分開的整數。資料規模 1 t 100 1 n 100 1 a i 1000 對...