• 快速排序


    #include <stdio.h>
    
    int partition(int A[], int p, int q) {
        int x = A[p];
        int i = p;
        int j;
        for (j=p+1; j<=q; j++) {
            if (A[j]<=x) {
                i++;
                int temp = A[i];
                A[i] = A[j];
                A[j] = temp;
            }
        }
        int temp = A[p];
        A[p] = A[i];
        A[i] = temp;
        return i;
    }
    
    void quickSort(int A[], int L, int R) {
        if (L <= R) {
            int mid = partition(A, L, R);
            quickSort(A, L, mid-1);
            quickSort(A, mid+1, R);
        }
    }
    
    int main() {
        int A[5] = {3, 6, 8, 2, 1};
        quickSort(A, 0, 4);
        int i;
        for (i=0; i<5; i++) {
            printf("%d
    ", A[i]);
        }
        return 0;
    }
    

      







    *************************************************************************************8

    #include <stdio.h> int quick_sort(int a[], int low, int high)//一趟排序找出并确定枢轴位置 { int key = 0; a[0]= a[low]; key = a[low]; while (low < high) { while (low < high && a[high] >= key) high--; a[low] = a[high]; while (low < high && a[low] <= key) low++; a[high] = a[low]; } a[low] = a[0]; return low; } void qsort(int a[], int low, int high)//递归进行排序,每次确定每部分的枢轴未知直到该部分只剩下一个元素为止 { int key = 0; if (low < high) { key = quick_sort(a, low, high); qsort(a, low, key-1); qsort(a, key+1, high); } } void Quicksort(int a[]) { qsort(a,1,7); } int main() { int a[8] = {0, 23, 27, 45, 98, 65, 17, 78}; int i = 0; for (i = 1; i < 8; i++) //排序前 printf("%4d", a[i]); printf(" "); Quicksort(a);//调用排序函数 for (i = 1; i < 8; i++) //排序后 printf("%4d", a[i]); printf(" "); } *********************************************************************************** #include <stdio.h> int quick_sort(int a[], int low, int high)//一趟排序找出并确定枢轴位置 { int key = 0; a[0]= a[low]; key = a[low]; while (low < high) { while (low < high && a[high] >= key) high--; a[low] = a[high]; while (low < high && a[low] <= key) low++; a[high] = a[low]; } a[low] = a[0]; return low; } void qsort(int a[], int low, int high)//递归进行排序,每次确定每部分的枢轴未知直到该部分只剩下一个元素为止 { int key = 0; if (low < high) { key = quick_sort(a, low, high); qsort(a, low, key-1); qsort(a, key+1, high); } } void Quicksort(int a[]) { qsort(a,1,7); } int main() { int a[8] = {0, 23, 27, 45, 98, 65, 17, 78}; int i = 0; for (i = 1; i < 8; i++) //排序前 { printf("%4d", a[i]); } printf(" "); Quicksort(a);//调用排序函数 for (i = 1; i < 8; i++) //排序后 { printf("%4d", a[i]); } printf(" "); }

      

    *****************************

    //请问qsort排序怎么写啊?
    
    #include <stdio.h>
    #include<stdlib.h>
    int comp(const void *a,const void *b)
    {
    return *(int *)a-*(int *)b;
    }
    int main()
    {
    int i,n,a[20];
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
        qsort(a,n,sizeof(int),comp);
        for(i=0;i<n;i++)
        printf("%d
    ",a[i]);
        return 0;
    
    }
    

      

  • 相关阅读:
    centos7安装mysql5.7
    centos7 多网卡绑定bond0 之mod4
    二、Windows Server 2016 AD 组织单位、组、用户的创建
    一、Windows Server 2016 AD服务器搭建
    (2)Linux中经常说的CPU上下文切换是什么意思
    (1)Linux系统中到底应该怎么理解系统的平均负载
    centos安装Docker与使用&&构建业务镜像挂载卷harbor仓库的高可用及网络模式和资源限制介绍
    windows和linux各类服务常用端口号汇总
    CentOS7.6搭建LAMP-wordpress论坛搭建
    centos下iptables防火墙规则用法和概述
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3432016.html
Copyright © 2020-2023  润新知