zoukankan      html  css  js  c++  java
  • 算法学习笔记(二)字符串根据逆序排序

    1.存放字符串数组的方法:

    ①使用二维数组char str[size][length],第一维指定字符串的数量,第二维指定字符串的长度,读入时,只需要将内容写入第一维,例如cin >> str[i]

    ②使用string类型,先加入头文件string,然后就可以定义字符串类型的变量,string变量还可以作为字符数组使用。


    2.如果已知一些字符串和它们的逆序,要求按照逆序的升序排列字符串,就涉及到带有关联关系的排序问题,这里有一个好的解决办法是对逆序采用选择排序,每次找出逆序中的最小值,然后输出逆序对应的字符串,接着给这个最小的逆序值赋一个大于数组中任何数的值,再在数组中寻找最小值。为了简化问题,假设这些字符串的长度相等。实现代码如下:

    #define NX_MAX 0XFFFFFF //用于赋值给逆序数组中的最小值
    int string_count; //字符串的数量
    int string_length; //字符串的长度
    char string_table[string_count][string_length]; //假设字符串已经录入,注意,实际中不能这
    //样给数组开辟内存空间,应该先预定义一个较大的数组
    int nx_table[string_count]; //假设对应于上面数组的逆序已经求出
    int i,j;
    int min_index = 0; //存储最小的逆序索引
    for(i = 0; i < string_count; i++)
    {
         for(j = 0; j < string_count; j++)
             if(nx_table[j] < nx_table[min_index])
                 min_index = j;
         cout << string_table[min_index] << endl;
         nx_table[min_index] = NX_MAX; //关键的一句,将已使用的逆序赋为不会再被找出的值
    }
  • 相关阅读:
    O(n^2)的排序方法
    99乘法表
    excel 转 csv
    批量关闭 excel
    tomcat 加入服务
    文件打包 zip
    字符串转换
    List数组种删除数据
    mybatis 批量上传
    sql server 查询表字段及类型
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154272.html
Copyright © 2011-2022 走看看