zoukankan      html  css  js  c++  java
  • 我写的快排程序

    参考了上一篇文章的思路。

    代码还是要多写,多动手,不然实际面试的时候会慌。还是要用百分之两百的态度去准备一百的面试。

    #include <iostream>

    using namespace std;

    void qsort(int *arr, int start, int end) {
    if (start >= end) {
    return;
    }

    int pivot = arr[end];
    int i = start, j = end - 1;
    while (i <= j) {
    while (i <= j && arr[i] <= pivot) i++;
    while (j >= i && arr[j] > pivot) j--;
    if (i < j) {
    int tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
    i++;
    j--;
    }
    }
    if (i != end) {
    int tmp = arr[i];
    arr[i] = pivot;
    arr[end] = tmp;
    }
    qsort(arr, start, i-1);
    qsort(arr, i+1, end);
    }

    void qsort2(int *arr, int start, int end) {
    if (start >= end) {
    return;
    }

    int pivot = arr[end];
    int i=start, j=start;
    for (; j < end; j++) {
    if (arr[j] <= pivot) {
    if (i != j) {
    int tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
    }
    i++;
    }
    }

    if (i != end) {
    int tmp = arr[i];
    arr[i] = arr[end];
    arr[end] = tmp;
    }

    qsort2(arr, start, i-1);
    qsort2(arr, i+1, end);
    }

    int main() {

    int arr[] = {9, 8, 20, 5, 100, 4, 80, 80};
    //qsort(arr, 0, 5);
    qsort2(arr, 0, 7);
    for (int i=0; i<8; i++) {
    cout << arr[i] << endl;
    }
    return 0;
    }

  • 相关阅读:
    1. Spring Web MVC
    spring web 文件配置详解
    Socket、SocketServer与WebSocket的关系与区别
    log4j2文件结构
    Spring Bean的生命周期
    Spring 初始化bean过程
    java反射原理与使用
    5、Spring 面向切面的编程
    Impala队列内存参数分析
    IDEA中flink程序报错找不到类
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6399681.html
Copyright © 2011-2022 走看看