c - C 字符串的快速排序
问题描述
我正在尝试对 c 字符串而不是整数进行排序的快速排序。当我调用 quickSort 时,我的数组中的所有字符串都被清空且未排序,我不知道为什么
'''''''''''''''''''''''''''''''''''''''''
void swap(char** A, int i, int j){
//printf("swap\n");
char* temp=malloc(strlen(A[i])*sizeof(char));
temp = A[i];
free(A[i]);
A[i]=malloc((1+strlen(A[j])) * sizeof(char));
A[i] = A[j];
free(A[j]);
A[j] = malloc((1+strlen(temp)) * sizeof(char));
A[j]=temp;
}
int Partition(char** A, int p, int r){
//printf("partion\n");
int i, j;
char* x;
//printf("x\n");
x = A[r];
i = p-1;
for(j=p; j<r; j++){
if( strcmp(A[j], x) < 0){
i++;
swap(A, i, j);
}
}
swap(A, i+1, r);
return(i+1);
}
void QuickSort(char** A, int p, int r){
int q;
if( p<r ){
q = Partition(A, p, r);
QuickSort(A, p, q-1);
QuickSort(A, q+1, r);
}
}
''''''''''''''''''''''''''''''
解决方案
推荐阅读
- python - 提取列中的嵌套元素并存储到新列中
- node.js - $ npm install npm WARN saveError ENOENT: 没有这样的文件或目录,打开 'C:\LeadMgt_Use.This.One\package.json'
- python - 如何通过提供 x,y 坐标使用 selnium(或任何其他 webdriver)在网站上移动鼠标
- vba - SQL 语句在执行时返回“找不到文件”
- typescript - 如何将 monorepo 节点项目捆绑到单个文件中?尝试使用 ncc
- rust - 如何在rust中返回带有引用的结构?
- c# - 使用相同的变量名或空检查切换对象类型失败?
- javascript - 这种合并排序的迭代实现是否正确?
- angular - “可观察”类型上不存在属性“地图”
' - java - 如果缺少 jar,使用“jpackage”创建的可执行文件会静默失败