#include<stdio.h> //直接插入排序 void InsertionSort(int*pData,int n,int j) { int temp; for(int i=1;i<n;i++) { temp=pData[i]; for(j=i-1;j>=0&&temp<pData[j];j--) pData[j+1]=pData[j]; pData[j+1]=temp; } } //希尔排序 void ShellSort(int*pData,int n,int delta) { int temp; for(int i=delta;i++) { temp=pData[i]; for(int a=i-delta;a>=0&&temp<pData[a];a=a-delta) pData[a+delta]=pData[a]; pData[a+delta]=temp; } } 哪里错了?
时间: 2024-02-20 16:01:27 浏览: 27
在希尔排序的函数中,for循环的起始值应该是i=delta,而不是i=delta;同时在for循环的第三个部分,应该是a=a-delta,而不是a-delta。修改后的代码如下:
```
#include <stdio.h>
//直接插入排序
void InsertionSort(int* pData, int n, int j) {
int temp;
for (int i = 1; i < n; i++) {
temp = pData[i];
for (j = i - 1; j >= 0 && temp < pData[j]; j--)
pData[j + 1] = pData[j];
pData[j + 1] = temp;
}
}
//希尔排序
void ShellSort(int* pData, int n, int delta) {
int temp;
for (int i = delta; i < n; i++) {
temp = pData[i];
for (int a = i - delta; a >= 0 && temp < pData[a]; a = a - delta)
pData[a + delta] = pData[a];
pData[a + delta] = temp;
}
}
```
还需要注意的是,在InsertionSort函数中,j应该作为函数参数传入,而不是作为全局变量声明。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)