题解
【入门】最小数
1 条题解
-
0
解题思路
找到最左边的最小数位置,输出位置后把它和第一个数交换。
参考代码
// 先读入题目给出的输入数据。 // 用简单的循环完成题目要求。 #include <iostream> using namespace std; int main() { int n, a[205]; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int k = 0; for (int i = 1; i < n; i++) { // 只在遇到更小的数时更新,保证留下最左边的位置。 if (a[i] < a[k]) k = i; } cout << k + 1 << endl; int t = a[0]; a[0] = a[k]; a[k] = t; for (int i = 0; i < n; i++) cout << a[i] << " "; cout << endl; return 0; }复杂度分析
代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。
- 1