zoukankan      html  css  js  c++  java
  • 选择排序&快速排序

    /////////selectSort
    //cases:
    //5
    //20
    //1 45 14 23 45 15 15 13 456 1 4165 456 123 436 13 6 456 651 65 6
    //10
    //1 5 8 9 6 4 5 3 8 6 
    //30
    //1 4 2 7 1 7 8 9 2 4 1 4 2 7 1 7 8 9 2 4 1 2 3 7 4 8 5 9 4 2
    //4
    //1 2 3 8
    //5
    //1 57 8 9 6
    #include <stdio.h>
    #define SIZE 1000
    int data[SIZE];
    
    void selectSort(int n)
    {
        for(int i=0;i<n;i++)
        {
            int max = 0;
            int maxPos = 0;
            for(int j=i;j<n;j++)
            {
                if(data[j]>max)
                {
                    max = data[j];
                    maxPos = j;
                }
            }
            data[maxPos] = data[i];
            data[i] = max;
        }
    }
    
    
    
    int main(void)
    {
        //freopen("input.txt","r",stdin);
        int ncases;
        scanf("%d",&ncases);
        for(int i=0;i<ncases;i++)
        {
            int n;
            scanf("%d",&n);
            for(int i=0;i<n;i++)
            {
                scanf("%d",&data[i]);
            }
            selectSort(n);
            for(int i=0;i<n;i++)
            {
                printf("%d ",data[i]);
            }
            printf("
    ");
        }
        return 0;
    }
    ////////quickSort
    //case:
    //5
    //20
    //1 45 14 23 45 15 15 13 456 1 4165 456 123 436 13 6 456 651 65 6
    //10
    //1 5 8 9 6 4 5 3 8 6 
    //30
    //1 4 2 7 1 7 8 9 2 4 1 4 2 7 1 7 8 9 2 4 1 2 3 7 4 8 5 9 4 2
    //4
    //1 2 3 8
    //5
    //1 57 8 9 6
    #include <stdio.h>
    #define SIZE 1000
    int data[SIZE];
    
    
    int partition(int l, int r, int data[]){
        int i = l - 1;
        int j = r;
        int key = data[r];
    
        while(1)
        {
            while(data[++i] < key) ;
            while(data[--j] > key && j >= i) ;
            {
            if(i >= j) break;
            int tmp = data[i];
            data[i] = data[j];
            data[j] = tmp;
            }
        }
        data[r] = data[i];
        data[i] = key;
        return i;
    }
    
    void quickSort(int l, int r, int data[]){
        if(l >= r) return;
    
        int pos = partition(l, r, data);
        quickSort(l, pos - 1, data);
        quickSort(pos + 1, r, data);
    }
    
    void quickSort(int l,int r,int data[])
    {
        if(l >= r) return;
    
        int pos = partition(l,r,data);
        quickSort(1,pos-1,data);
        quickSort(pos+1,r,data);
    }
    
    
    
    int main(void)
    {
        //freopen("input.txt","r",stdin);
        int ncases;
        scanf("%d",&ncases);
        for(int i=0;i<ncases;i++)
        {
            int n;
            scanf("%d",&n);
            for(int i=0;i<n;i++)
            {
                scanf("%d",&data[i]);
            }
            quickSort(0,n-1,data);
            for(int i=0;i<n;i++)
            {
                printf("%d ",data[i]);
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    【Luogu】P2491消防(单调队列)
    【Luogu】P2824排序(二分答案+线段树排序)
    2-k8s笔记-Kubernetes安装配置指南
    1-k8s笔记-Kubernetes入门
    22-MySQL DBA笔记-其他产品的选择
    21-MySQL DBA笔记-高可用性
    20-MySQL DBA笔记-可扩展的架构
    19-MySQL DBA笔记-操作系统、硬件、网络的优化
    18-MySQL DBA笔记-MySQL Server调优
    17-MySQL DBA笔记-应用程序调优
  • 原文地址:https://www.cnblogs.com/xcsllll/p/6655150.html
Copyright © 2011-2022 走看看