C语言索引排序不明白,求大神给段索引排序的代码,该如何解决

C语言索引排序不明白,求大神给段索引排序的代码
C语言索引排序不明白,求大神给段索引排序的代码C语言索引排序不明白,求大神给段索引排序的代码,该如何解决
------解决方案--------------------

#include <iostream>

void BubbleSort1(int arr[], int n);
void BubbleSort2(int arr[], int n);
void BubbleSort3(int arr[], int n);

int main()
{
    int arr[] = { 5, 23, 4, 1, 1, 3 };
    BubbleSort3(arr, 6);
    for (auto i : arr) {
        std::cout << i << " " << std::ends;
    }
    return 0;
}

void Swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}

void BubbleSort1(int arr[], int n)
{
    for (int i = 0; i < n; i++) {
        for (int j = 1; j < n - i; j++) {
            if (arr[j - 1] > arr[j]) {
                Swap(arr[j - 1], arr[j]);
            }
        }
    }
}

void BubbleSort2(int arr[], int n)
{
    bool flag = true;
    int k = n;
    while (flag == true) {
        flag = false;
        for (int i = 0; i < n; i++) {
            if (arr[i - 1] > arr[i]) {
                Swap(arr[i - 1], arr[i]);
                flag = true;
            }
        }
        k--;
    }
}

void BubbleSort3(int arr[], int n)
{
    int j, k;
    int flag = n;

    while (flag > 0) {
        k = flag;
        flag = 0;
        for (j = 1; j < k; j++) {
            if (arr[j - 1] > arr[j]) {
                Swap(arr[j - 1], arr[j]);
                flag = j;
            }
        }
    }
}

三种冒泡实现,比较简单。更多的排序方法可以找本数据结构的书看看。