• 快速排序,冒泡排序


    冒泡:

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    
    void sort(int* arr, int n) {
        int length;
        int i, j;
        int temp;
    
        length = n;
        for (i = 0; i < length; i++) {
            for (j = 0; j < length - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    
    
    int main() {
        int n;
    
        int i = 0;
    
        int arr[100];
    
        cout << "输入数组元素个数:" << endl;
        
        cin >> n;
    
        cout << "
    输入数组:" << endl;
    
        for (i = 0; i < n; i++) {
    
            cin >> arr[i];
    
        }
    
        cout << "
    输入的数组为:" << endl;
    
        for (i = 0; i < n; i++) {
    
            cout << arr[i] << " , ";
    
        }
    
    
    
        sort(arr, n);
    
    
    
        cout << "
    冒泡结果为:" << endl;
    
        for (i = 0; i < n; i++) {
    
            cout << arr[i] << " , ";
    
        }
    }

    快排:

    #include<iostream>
    
    #include<stdio.h>
    
    #include<stdlib.h>
    
    using namespace std;
    
    
    
    int quicksort(int *arr, int left, int right) {
    
        int mid;
    
    
    
        mid = arr[left];
    
        while (left < right) {
    
            //从右边开始
    
            while(left<right && arr[right]>mid)
    
                right--;
    
            arr[left] = arr[right];
    
    
    
            while(left < right && arr[left] < mid)
    
                left++;
    
            arr[right] = arr[left];
    
        }
    
    
    
        //此时left等于right
    
        arr[left] = mid;
    
        return left;
    
    }
    
    
    
    void sort(int *arr, int left, int right) {
    
        int pivot;
    
    
    
        pivot = arr[left];
    
        if (left < right) {
    
            pivot = quicksort(arr, left, right);  //选出支点
    
            sort(arr, left, pivot - 1);           //负责支点左边的快排
    
            sort(arr, pivot + 1, right);          //负责支点右边的快排
    
        }

    //等到所有排序的left=right了,就会跳出 }
    int main() { int n; int i = 0; int arr[100]; cout << "输入数组元素个数:" << endl; cin >> n; cout << " 输入数组:" << endl; for (i = 0; i < n; i++) { cin >> arr[i]; } cout << " 输入的数组为:" << endl; for (i = 0; i < n; i++) { cout << arr[i] << " , "; } sort(arr, 0, n - 1); cout << "快排结果为:" << endl; for (i = 0; i < n; i++) { cout << arr[i] << " , "; } }
  • 相关阅读:
    编程题2
    编程题1
    用Fiddler对Android应用进行抓包
    Solr7部署报错:java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z
    docker 网桥 bridge
    dockerfile 文件创建镜像说明、各参数
    多实例应用
    配置管理-kubernates的配置管理使用方式 、 config-map/ secret
    存储管理、有状态应用的特征
    特殊类型statfulset 和 headless service
  • 原文地址:https://www.cnblogs.com/hikki-station/p/11176025.html
Copyright © 2020-2023  润新知