冒泡排序

  1. void bubbleSort(int arr[], int n)
  2. {
  3. for (int i = 0; i < n; i++)
  4. {
  5. for(int j = 0; j < n - i - 1; j++)
  6. {
  7. if(arr[j] > arr[j+1])
  8. {
  9. int t = arr[j];
  10. arr[j] = arr[j+1];
  11. arr[j + 1] = t;
  12. }
  13. }
  14. }
  15. }

选择排序

void choiceSort(int arr[], int n)
{
    for(int i = 0; i < n; i++)
    {
        int m = i;
        for(int j = i + 1; j < n; j ++)
        {
            if (arr[j] < m)
            m = j;
        }

        if (i != m)
        {
            int t = arr[i];
            arr[i] = arr[m];
            arr[m] = t;
        }
    }
}

插入排序

void insertion_sort(int arr[], int len)
{
    for(int i = 1; i < len; i++)
    {
        int key = arr[i];
        int j;
        for(j = i - 1; j > 0 && key < arr[j]; j--)
        {
            arr[j+1] = a[j];
            a[j + 1] = key;
        }
    }
}

快速排序

void swap(int* a, int* b)
{
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

int partion(int arr[], int low, int high)
{
    int i = low;

    int pivot = arr[high];

    for (int j = low; j <= high - 1; j++)
    {
        if (arr[j] < pivot)
        {
            swap(&arr[i], &arr[j]);
            i++;
        }
    }

    swap(&arr[i], &arr[high]);
    return i;
}

void quickSort(int arr[], int low, int high)
{
    if (low < high)
    {
        int pivot = partion(arr, low, high);
        quickSort(arr, low, pivot - 1);
        quickSort(arr, pivot + 1, high);
    }
}