快速排序字符数组(字符串) C 编程

     2023-02-16     196

关键词:

【中文标题】快速排序字符数组(字符串) C 编程【英文标题】:quick sort an Array of characters (string) C programming 【发布时间】:2013-02-16 14:05:53 【问题描述】:

我有一个字符数组

char word[30]; 

保留用户将输入的单词,我想对字母进行排序 例如,如果这个词是 "cat" 我想让它成为一个“行为” 我想这是相当容易的任务,但作为 C 编程的初学者,我发现互联网上的示例相当混乱。

这是我尝试进行冒泡排序的代码...

还是不行

#include <stdio.h>
#include<string.h>

#define MAX_STRING_LEN 30

main()

char w1[30], w2[30];
char tempw1[30], tempw2[30];
int n,i,k;
char temp;  
    printf("Give the first word: ");
    scanf("%s",&w1);
    printf("Give the second word: ");
    scanf("%s",&w2);
        if(strlen(w1)==strlen(w2)) /* checks if words has the same length */
            
            strcpy(tempw1,w1); /*antigrafei to wi string sto tempw1 */ 
            strcpy(tempw2,w2); /*antigrafei to w2 string sto tempw2 */ 
            n=strlen(w1);


             for (i=1; i<n-1; i++)
               
                                for (k=n;k>i+1;k--)
                    
                        if (w1[k] < w1[k-1])
                            
                                temp=w1[k-1];
                                w1[k-1]=w1[k];
                                w1[k]=temp;
                            
                     
            
             for (i=1; i<n-1; i++)
               
                                for (k=n;k>i+1;k--)
                    
                        if (w2[k] < w2[k-1])
                            
                                temp=w2[k-1];
                                w2[k-1]=w2[k];
                                w2[k]=temp;
                            
                     
                 
            printf("%s \n",tempw1);
            printf("%s \n",w1);
            printf("%s \n",tempw2);
            printf("%s \n",w2);
            /* call qsort */
            /* call compare */
            
        else printf(" \n H lexh %s den einai anagrammatismos tis lexhs %s",w1,w2);
    return 0;St

【问题讨论】:

冒泡排序是一种更简单的排序算法。 好的,谢谢您提出的冒泡排序建议,我认为这只适用于整数!我马上试试,我正在尝试使用的程序是一个字谜游戏,作为练习,我已经解决了我比较两个数组但需要先对它们进行排序才能比较的所有其他部分。 @poseidon11 1. 字符整数。 2. 你可以想出某种算法,根据对象的属性来比较对象,否则就不会有通用的排序算法。 【参考方案1】:

使用 C 标准库中的 qsort()

int compare(const void *a, const void *b)

    return *(const char *)a - *(const char *)b;


char arr[] = "dbaurjvgeofx";

printf("Unsorted: %s\n", arr);
qsort(arr, strlen(arr), 1, compare);
printf("Sorted: %s\n", arr);

【讨论】:

【参考方案2】:

这是基本的编程知识,你自己解决它会帮自己一个忙..

话虽如此,这是一个快速的伪

for i is equal to 1 to length of array
  for k is equal to i to length of array
   if i > k
    temp = i
    i = k
    k = temp
   endif
  endfor
endfor

【讨论】:

这不是快速排序。哦——在重读之后,我猜他可能不是在寻找快速排序算法……只是一种“快速”排序。哈哈。 非常感谢我整天尝试冒泡排序的帮助,但由于某种原因我无法做到,最后让它与 qsort 一起工作:D

如何使用快速排序对字符串数组进行排序

】如何使用快速排序对字符串数组进行排序【英文标题】:HowtouseQuickSorttosortanarrayofstrings【发布时间】:2016-06-0906:05:05【问题描述】:我想使用quicksort(std::qsort(arg,arg,arg))而不是(std::sort(arg,arg,arg))对字符串数组s[]进行排序。那么... 查看详情

如何使用基数排序对变长字符串数组进行排序?

】如何使用基数排序对变长字符串数组进行排序?【英文标题】:Howtosortavariable-lengthstringarraywithradixsort?【发布时间】:2015-06-1203:08:29【问题描述】:我知道基数排序可以对相同长度的字符串数组进行排序,但是是否可以对变长... 查看详情

学习总结-后缀数组(代码片段)

...序(倍增算法的时间复杂度会从(Theta(nlogn)~ o~Theta(nlog^2n)))2.字符串-后缀这个大家应该都知道,比方说有一个字符串(a~b~c~d~e~f),那么它的后缀就是:后缀1:(a~b~c~d~e~f)?2:(~~~b~c~d~e~f)?3:(~~~~~c~d~e~f)?4:(~~~~~~~~d~e~f)?5:(~~~~~~~~~~e~f)?6:(~~~~~~~~~~~~~~f)... 查看详情

C ++排序字符串数组

】C++排序字符串数组【英文标题】:C++sortarrayofstrings【发布时间】:2010-05-1013:50:13【问题描述】:我正在尝试对字符串数组进行排序,但它没有对任何内容进行排序......我做错了什么?stringnamesS[MAX_NAMES];intcompare(constvoid*a,constvoid*... 查看详情

java编程实现中英混合字符串数组按首字母排序的方法

在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如:?1234567String[]arrays=newString[]{"gyu","sdf","zf","大同","收到","地方","三等分","的人","反对高铁","泛代数","上的投入","和国家"};/*设置语言环... 查看详情

编程实践golang字符串数组排序(代码片段)

Golang字符串数组排序当数字存储为字符串时,这是编程中的一个问题-因为作为字符串,当按字母顺序排序时,它们将从头到尾按每个数字排列。例如,在处理带编号的文件名时,您可能会遇到此问题,这... 查看详情

按字母顺序对 c 字符串数组进行排序

】按字母顺序对c字符串数组进行排序【英文标题】:Sortingarrayofcstringsalphabetically【发布时间】:2014-02-0922:03:30【问题描述】:我有一个家庭作业问题,我遇到了一些问题,我被要求使用C++按字母顺序对C字符串数组进行排序,使... 查看详情

快速查找字符串数组的所有组合

】快速查找字符串数组的所有组合【英文标题】:Findallcombinationofstringarrayinswift【发布时间】:2017-01-0218:53:43【问题描述】:我有一个字符串数组,我想找到其元素的所有可能组合例如:数组=[A,B,C,D]应该产生结果:[A,AB,AC,AD,ABC,AB... 查看详情

对字符串数组进行排序

】对字符串数组进行排序【英文标题】:Sortanarrayofstrings【发布时间】:2016-01-1300:49:35【问题描述】:我需要有关此功能的快速提示。所以基本上我有这个结构,由一个类使用。#include<cstring>#include<iostream>usingnamespacestd;st... 查看详情

字符串算法—字符串排序(下篇)

...绍3区基数快速排序、后缀排序法。1. 前文回顾  在字符串算法—字符串排序(上篇)中,我们介绍了键索引计数法、LSD基数排序、MSD基数排序。  但LSD基数排序要求需排序字符串的长度一致;MSD基数排序虽然对字符串的... 查看详情

算法:字符串

(一)字符串题目的特点①广泛性字符串可以看作字符类型的数组,与数组的排序、查找、调整有关很多其他类型的题可看作字符串类型的题②需要掌握的概念回文子串(连续)子序列(不连续)前缀树(Trie树)后缀树和后缀... 查看详情

使用函数对 C 中的字符串数组进行排序

】使用函数对C中的字符串数组进行排序【英文标题】:SortinganArrayofStringsinCusingfunctions【发布时间】:2013-10-2320:47:37【问题描述】:#include<stdio.h>#include<string.h>voidbubble_sort_grades(char[],int);intmain(void)intmenuswitch=1;intamountofs 查看详情

如何在C中按升序对字符串数组进行排序

】如何在C中按升序对字符串数组进行排序【英文标题】:HowtosortarrayofstringsinascendingorderinC【发布时间】:2018-06-0604:03:42【问题描述】:问题我已经制作了与其他类似的排序程序https://beginnersbook.com/2015/02/c-program-to-sort-set-of-strings-i... 查看详情

c语言中说的按字典顺序是啥意思???

...个字符,ab没有了,就排在abc前参考技术A就是说,将多个字符串的同一位置的字符按照26个字母的顺序进行比对。a最小,z最大。a<b;aa<ab; 因为第二位置上,前面字符串是a,后面字符串是b,所以是小于关系,以此类推... 查看详情

C中的自然排序 - “字符串数组,包含数字和字母”

】C中的自然排序-“字符串数组,包含数字和字母”【英文标题】:NaturalsortinC-"arrayofstrings,containingnumbersandletters"【发布时间】:2010-11-2313:13:12【问题描述】:寻找一种经过验证的生产算法。Didseethisexample但在网络或书籍... 查看详情

使用 C 中的动态数组对元素(字符串)进行排序

】使用C中的动态数组对元素(字符串)进行排序【英文标题】:Sortelements(strings)usingdynamicarraysinC【发布时间】:2022-01-0406:50:19【问题描述】:我需要创建1000000个动态单词数组(它们不超过8个符号)并在需要时重新分配它,但我... 查看详情

java编程实现中英混合字符串数组按首字母排序的方法(代码片段)

本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下:在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如:... 查看详情

java编程实现中英混合字符串数组按首字母排序的方法(代码片段)

本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下:在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如:... 查看详情