有一組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 對...