美文网首页
3、快速排序

3、快速排序

作者: 圣巨猿 | 来源:发表于2018-03-30 15:19 被阅读0次
//快速排序
void Solution:: fastSort(int *arr,int left,int right) {
    int i = left; int j = right;

    if (left > right) {
        return;
    }

    int key = arr[left];

    while (i != j) {
        while (arr[j] >= key && j > i) {
            j--;
        }

        while (arr[i] <= key && j > i) {
            i++;
        }

        //找到左边大于基准数的跟右边小于基准数的交换位置
        if (j > i) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
//        printf("快排后");
//        for (int i = 0; i < 7; i++) {
//            printf("%i,",arr[i]);
//        }
//        printf("\n");
    }
    //交换基准数
    arr[left] = arr[i];
    arr[i] = key;

//    printf("快排后");
//    for (int i = 0; i < 7; i++) {
//        printf("%i,",arr[i]);
//    }
//    printf("\n");

    fastSort(arr, left, i-1);
    fastSort(arr, i+1, right);
}

相关文章

  • [算法导论]-第七章-快速排序

    本章重点 1.快速排序 2.冒泡排序 3.希尔排序 1.快速排序 2.冒泡排序 3.希尔排序 希尔排序,也称递减增...

  • 排序算法(java)

    1、堆排序 2、快速排序 3、归并排序

  • 排序方法

    1.选择排序 2.插入排序 3.冒泡排序 归并排序归并排序5.快速排序快速排序

  • 排序

    1、选择排序 2、冒泡排序 3、插入排序 4、快速排序

  • 排序算法

    1冒泡排序 2插入排序 3选择排序 4快速排序

  • 常见排序算法

    1、冒泡排序 2、插入排序 3、选择排序 4、快速排序 5、堆排序

  • java快速学习排序---快排算法

    一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。 1.快速排序的基本思想: 2.快速排序的图示: 3.快速排序的算法

  • android 随笔之排序算法

    1,冒泡排序(1) 冒泡排序(2) 2,选择排序 3,插入排序 4,快速排序

  • 排序

    1 冒泡排序 2 选择排序 3 插入排序 4 归并排序 5 快速排序 6 堆排序

  • PHP的四种基本排序整理

    1. 冒泡排序 2. 选择排序 3. 快速排序 4. 插入排序

网友评论

      本文标题:3、快速排序

      本文链接:https://www.haomeiwen.com/subject/lwjicftx.html