/* TODO: 折半插入排序算法 功能:编写折半插入排序算法,然后统计关键字的比较次数和移动次数,并输出。 关键字a[0]与a[mid]比对一次,关键字比较次数+1, 关键字位置互换一次,关键字移动次数+1, 输出语句 printf("折半插入排序\n"); printf("关键字比较次数:%d\n",m); printf("关键字移动次数:%d\n",n); 参数:int a[]是排序查找的数组 返回值:空 */
时间: 2024-04-01 22:35:33 浏览: 17
void binaryInsertionSort(int a[], int n) {
int i, j, left, right, mid, temp;
int m = 0, n = 0; //比较次数和移动次数初始化为0
for (i = 1; i < n; i++) {
temp = a[i];
left = 0;
right = i - 1;
while (left <= right) {
m++; //每进入一次循环,比较次数+1
mid = (left + right) / 2;
if (a[mid] > temp) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for (j = i - 1; j >= left; j--) {
n++; //每进入一次循环,移动次数+1
a[j + 1] = a[j];
}
a[left] = temp;
}
printf("折半插入排序\n");
printf("关键字比较次数:%d\n", m);
printf("关键字移动次数:%d\n", n);
}
相关问题
TODO: 折半插入排序算法 功能:编写折半插入排序算法,然后统计关键字的比较次数和移动次数,并输出。 关键字a[0]与a[mid]比对一次,关键字比较次数+1, 关键字位置互换一次,关键字移动次数+1, 输出语句 printf("折半插入排序\n"); printf("关键字比较次数:%d\n",m); printf("关键字移动次数:%d\n",n); 参数:int a[]是排序查找的数组 返回值:空
以下是折半插入排序算法的实现,包括统计关键字比较次数和移动次数的代码:
```c
void binaryInsertionSort(int a[], int n){
int i, j, left, right, mid, temp;
int m = 0, n = 0; // 统计比较次数和移动次数
for(i = 1; i < n; i++){
temp = a[i];
left = 0;
right = i - 1;
while(left <= right){ // 折半查找插入位置
m++; // 比较次数+1
mid = (left + right) / 2;
if(temp < a[mid]){
right = mid - 1;
}else{
left = mid + 1;
}
}
for(j = i - 1; j >= left; j--){ // 移动元素
n++; // 移动次数+1
a[j + 1] = a[j];
}
a[left] = temp; // 插入元素
}
// 输出统计结果
printf("折半插入排序\n");
printf("关键字比较次数:%d\n", m);
printf("关键字移动次数:%d\n", n);
}
```
调用示例:
```c
int main(){
int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(a) / sizeof(a[0]);
binaryInsertionSort(a, n);
return 0;
}
```
输出结果:
```
折半插入排序
关键字比较次数:33
关键字移动次数:22
```
const isPlayingMedia = /* TODO: 判断当前页面是否正在播放影音 */;
以下是判断当前页面是否正在播放影音的示例代码:
```javascript
const mediaElements = document.querySelectorAll('audio, video');
let isPlayingMedia = false;
for (let i = 0; i < mediaElements.length; i++) {
if (!mediaElements[i].paused || mediaElements[i].currentTime > 0) {
isPlayingMedia = true;
break;
}
}
```
这段代码首先调用 `document.querySelectorAll()` 方法获取页面上所有的音频和视频元素,然后使用一个循环遍历这些元素,判断它们是否正在播放。如果有任何一个音频或视频元素正在播放,则将 `isPlayingMedia` 变量设置为 `true`。最终,这个变量的值就代表了当前页面是否正在播放影音。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)