c - C语言中的快速排序算法对单词进行排序

标签 c arrays string char quicksort

在我的在线类(class)作业中,我必须使用快速排序算法对单词列表进行排序。我能够对数字列表进行排序,但不能对单词进行排序。函数 IthChar 接受 2 个参数,一个字符串和一个表示字符串索引的整数,并返回位于索引位置的字符。
例如 IthChar("Paul", 0) --> P

这是快速排序、交换和 swapPivot 函数:

void quickSort(string array[], int left, int right)
{
      int I, J, pivot;
      char chI, chJ, chPivot;

      if(left<right)
      {
                    pivot=left;
                    I=left;
                    J=right;
                    while(I<J)
                    {
                               chI=IthChar(array[I], 0);
                               chJ=IthChar(array[J], 0);
                               chPivot=IthChar(array[I], 0);
                               while(chI<=chPivot&&I<right)
                               I++;
                               while(chJ>chPivot)
                               J--;
                               if(I<=J)
                               {
                                       swap(array, I, J);
                               }
                    }   
                    swapPivot(array, pivot, J);
                    quickSort(array, left, J-1);
                    quickSort(array, J+1, right); 
      }
}

void swap(string array[], int loc, int loc1) 
{
          int temp;

          temp=array[loc];
          array[loc]=array[loc1];
          array[loc1]=temp;
}     

void swapPivot(string array[], int pivot, int J)
{
          int temp;

          temp=array[pivot];
          array[pivot]=array[J];
          array[J]=temp;
}

谢谢:D

最佳答案

您应该编写(或重用,如果您已经有的话)一个字符串比较函数。

关于c - C语言中的快速排序算法对单词进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832601/

相关文章:

c - 如果条件在 c 中有效,为什么里面有 printf?

c - c中函数和main之间的变量

C内存分配

python - Numpy Array Division - 不支持的操作数类型/: 'list' and 'float'

python - 扩展 str 类以获取其他参数

将 ASCII 转换为 uint8

linux下无法读取文件

objective-c - 将字符串中的数据存储到整数数组中

string - 如何在 Common Lisp 中修剪前导和尾随空白?

c++ - 将字符串写入 char,同时将参数传递给字符串