编写一个函数模板InsertionSort实现插入排序功能,编写main函数输入5个整数,调用函数模板InsertionSort对生成的整数排序后输出,输入输出示意如下: 3 4 2 3 8 2 3 3 4 8 【注意】:以下程序代码只允许添加不允许修改。 int main() { int a[5]; for (int i = 0; i < 5; i++) cin>>a[i]; InsertionSort(a, 5); for (int i = 0; i < 5; i++) cout << a[i] << ' '; return 0; }
时间: 2024-01-03 15:02:54 浏览: 23
```cpp
#include <iostream>
using namespace std;
template<typename T>
void InsertionSort(T a[], int n) {
for (int i = 1; i < n; i++) {
T temp = a[i];
int j = i - 1;
while (j >= 0 && temp < a[j]) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}
int main() {
int a[5];
for (int i = 0; i < 5; i++)
cin >> a[i];
InsertionSort(a, 5);
for (int i = 0; i < 5; i++)
cout << a[i] << ' ';
return 0;
}
```
相关问题
编写一个函数模板InsertionSort实现插入排序功能,编写main函数输入5个整数,调用函数模板对生成的整数排序后输出。
好的,以下是实现插入排序的函数模板InsertionSort以及main函数的代码:
```c++
#include <iostream>
using namespace std;
template<class T>
void InsertionSort(T arr[], int n) {
for (int i = 1; i < n; i++) {
T key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
int main() {
int arr[5];
cout << "请输入5个整数:" << endl;
for (int i = 0; i < 5; i++) {
cin >> arr[i];
}
InsertionSort(arr, 5);
cout << "排序后的结果为:" << endl;
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这段代码中,我们首先定义了InsertionSort函数模板,用于实现插入排序。然后在main函数中,我们先输入5个整数,并将这些整数存储在一个数组中。接着调用InsertionSort函数模板对这个数组进行排序,并输出排好序的结果。
使用Unittest框架对插入排序函数insertion_sort进行测试
好的,以下是一个使用Unittest框架对插入排序函数进行测试的示例代码:
```python
import unittest
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
class TestInsertionSort(unittest.TestCase):
def test_insertion_sort(self):
arr = [5, 2, 8, 1, 3]
insertion_sort(arr)
self.assertEqual(arr, [1, 2, 3, 5, 8])
if __name__ == '__main__':
unittest.main()
```
在这个示例中,我们定义了一个insertion_sort函数,用于对一个整数数组进行插入排序。然后,我们通过编写一个名为TestInsertionSort的测试类,来对这个函数进行测试。在这个测试类中,我们定义了一个名为test_insertion_sort的测试方法,在这个方法中,我们创建了一个包含5个随机整数的数组,然后调用insertion_sort函数进行排序,并使用self.assertEqual来验证排序后的数组是否与预期结果相同。最后,我们使用unittest.main()来运行这个测试类,以便进行测试。
当我们运行这个测试程序时,如果insertion_sort函数没有正确工作,就会出现assertion error,并提示我们哪个测试用例失败了。如果所有测试用例都通过了,就说明insertion_sort函数工作正常。