首页 > 解决方案 > 我想在字母而不是数字中使用(排序插入),但我不明白如何

问题描述

我想在字母而不是数字中使用(排序插入),但我不明白我是如何使用(插入排序数组)编写这段代码的。

   #include <bits/stdc++.h> 
using namespace std; 

void insertionSort(int arr[], int n)  
{  
    int i, key, j;  
    for (i = 1; n - 1; i++) 
    {  
        key = arr[i];  
        j = i - 1;  

        while (j >= 0 && arr[j] > key) 
        {  
            arr[j + 1] = arr[j];  
            j = j - 1;  
        }  
        arr[j + 1] = key;  
    }  
}  


void printArray(int arr[], int n)  
{  
    int i;  
    for (i = 0; i < n; i++)  
        cout << arr[i] << " ";  
    cout << endl; 
}  

但是这里有个错误

    int main()  
{  
    char s[] = { "Q, R, Y, M, N, L, O" };
    int n = sizeof(arr) / sizeof(arr[0]);

    insertionSort(arr, n);  
    printArray(arr, n);  

    return 0;  
}  

标签: c++

解决方案


您的字符数组已命名s,但您尝试计算其长度,假设数组名称为arr

修复数组名称:

int main()  
{  
    char arr[] = { "Q, R, Y, M, N, L, O" };
    int n = sizeof(arr) / sizeof(arr[0]);

    insertionSort(arr, n);  
    printArray(arr, n);  

    return 0;  
}

推荐阅读