15,395,877 members
See more:
`Shellsort must be performed on the letters / keys «THANK» <pre>`

I can run this code using this function and get the result but
doing shell sort in math , looks like more complicated.

now:
for each time the inner front loop is finished (ie right after: a [j] = value;): (we have this function below)

I should write the array and write the values of 'h' (4 and 1) and 'i' during the sorting.
Highlight in particular the keys that have been involved in the sorting.

What I have tried:

lang="C++">

```void shellSort(char arr[], const int n) {
int  i, j, h;                                          //  Loop variables
char value;                                           //The value / element that may need to be moved backwards in the subarray
for (h = 1;  h <= n/9;  h = (3*h)+1)  ;             // NB: Empty for-loop
char character;
while (h > 0)  {                                    //  there are subarrays

for (i = h+1;  i < n;  i++) {                  // Goes through the subarrays:
value = arr[i];                           // The one that may be moved within the subarray.
j  = i;                                   // Initiates to current item.

while (j > h  &&  arr[j-h] > value) {

arr[j] = arr[j-h];                   // Moves it up 'h' places.
j -= h;                              // Index becomes the 'h' places further down

}
arr[j] = value;                           // Slips into place where 'j' has stopped

}
cout << "\n\nH = " << h << " IS FINISHED!!\n\n";
cin >> character;
h /= 3;                                          // 'h' is reduced to one-third for each loop.
}
}```
Posted
Updated 5-Oct-21 23:57pm
Rick York 6-Oct-21 22:30pm

Do you have a question?

## Solution 1

While we are more than willing to help those that are stuck, that doesn't mean that we are here to do it all for you! We can't do all the work, you are either getting paid for this, or it's part of your grades and it wouldn't be at all fair for us to do it all for you.

So we need you to do the work, and we will help you when you get stuck. That doesn't mean we will give you a step by step solution you can hand in!
Start by explaining where you are at the moment, and what the next step in the process is. Then tell us what you have tried to get that next step working, and what happened when you did.

If you are having problems getting started at all, then this may help: How to Write Code to Solve a Problem, A Beginner's Guide[^]