There are several ways to implement a sorting algorithm for n segments in C. One common approach is to use the Quicksort algorithm. Here is an example implementation:

#include <stdio.h>

// Function to swap two segments
void swap(int* a, int* b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

// Function to partition the array
int partition(int arr[], int low, int high)
{
    int pivot = arr[high]; // pivot
    int i = (low - 1); // Index of smaller element

    for (int j = low; j <= high - 1; j++) {
        // If current element is smaller than or
        // equal to pivot
        if (arr[j] <= pivot) {
            i++;    // increment index of smaller element
            swap(&arr[i], &arr[j]);
        }
    }
    swap(&arr[i + 1], &arr[high]);
    return (i + 1);
}

// Function to implement Quick sort
void quickSort(int arr[], int low, int high)
{
    if (low < high) {
        // pi is partitioning index, arr[p] is now
        // at right place
        int pi = partition(arr, low, high);

        // Separately sort elements before
        // partition and after partition
        quickSort(arr, low, pi - 1);
        quickSort(arr, pi + 1, high);
    }
}

// Function to print array
void printArray(int arr[], int size)
{
    int i;
    for (i = 0; i < size; i++)
        printf("%d ", arr[i]);
    printf("\n");
}

// Driver code
int main()
{
    int arr[] = { 10, 7, 8, 9, 1, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    quickSort(arr, 0, n - 1);
    printf("Sorted array: \n");
    printArray(arr, n);
    return 0;
}

In this example, we have an array arr containing the lengths of n segments. The quickSort function is called to sort the array using the Quicksort algorithm. The partition function is used to divide the array into two parts and return the partitioning index. The swap function is used to swap two segment lengths. The printArray function is used to print the sorted array

C sort n segments

原文地址: https://www.cveoy.top/t/topic/hPqy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录