如何更改插入排序代码的此实现,以便它还计算排序期间执行的比较次数和数组赋值次数(元素交换的次数)?
#include <iostream>
using namespace std;
void insertionSort(int arr[], int length);
void printArray(int array[], int size);
int main()
{
int array[] = {6,2,7,9,3,8,3,10};
insertionSort(array, (sizeof(array)/sizeof(array[0]))-1);
printArray(array, (sizeof(array) / sizeof(array[0])) - 1);
return 0;
}
void insertionSort(int arr[], int length)
{
int i, j, tmp;
for (i = 1; i < length; i++) {
j = i;
while (j > 0 && arr[j - 1] > arr[j]) {
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}
}
}
void printArray(int array[], int size)
{
int j;
for (j = 0; j < size; j++)
{
std::cout << array[j] << std::endl;
}
}