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;
    }
  • 相关阅读:
    电脑hosts文件、hosts文件说明、hosts文件域名和ip
    java复制对象属性值、复制值
    查找替换、idea全局搜索、全局替换、全局搜索替换
    谷歌浏览器问题、
    http请求类、RestTemplate、请求工具类
    easypoi导入
    vue下载本地文件、vue下载本地文件报错、vue下载本地文件找不到
    arm汇编指令的条件码
    GNU内嵌汇编
    shell脚本错误:syntax error near unexpected token '$' ''
  • 原文地址:https://www.cnblogs.com/xcsllll/p/6655150.html
Copyright © 2011-2022 走看看