zoukankan      html  css  js  c++  java
  • 算法--排序

    1 冒泡排序

     1 #include<stdio.h>
     2 int main(){
     3     int n,t;
     4     scanf("%d",&n); //n排序总数 
     5     int arr[n];
     6     for(int i=0;i<n;i++)
     7         scanf("%d",&arr[i]);  //输入 
     8     for(int i=0;i<n-1;i++){  //开始排序 
     9         for(int j=0;j<n-i-1;j++){
    10             if(arr[j]>arr[j+1]){    
    11             t=arr[j];
    12             arr[j]=arr[j+1];
    13             arr[j+1]=t;
    14         }
    15     }
    16 }
    17     for(int i=0;i<n;i++)
    18         printf("%d ",arr[i]);  //输出 
    19         return 0;
    20 } 

    2 选择排序

    #include<stdio.h>
    int main(){
        int n,t;
        scanf("%d",&n); //n排序总数 
        int arr[n];
        for(int i=0;i<n;i++)
            scanf("%d",&arr[i]);  //输入 
        for(int i=0;i<n;i++){  //开始排序 
            for(int j=i+1;j<n;j++){
                if(arr[i]>arr[j]){    
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    }
        for(int i=0;i<n;i++)
            printf("%d ",arr[i]);  //输出 
            return 0;
    } 

    3 插入排序

    #include<stdio.h>
    int main(){
        int n,t;
        scanf("%d",&n); //n排序总数 
        int arr[n];
        for(int i=0;i<n;i++)
            scanf("%d",&arr[i]);  //输入 
        for(int i=0;i<n;i++){  //开始排序 
            for(int j=i+1;j<n;j++){
                if(arr[i]>arr[j]){    
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    }
        for(int i=0;i<n;i++)
            printf("%d ",arr[i]);  //输出 
            return 0;
    } 

    4 堆排序

    5 归并排序

    6 快速排序

    #include <stdio.h>
    void swap(int a[], int i, int j)
    {
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    
    int partition(int a[], int p, int r)
    {
        int i = p;
        int j = r + 1;
        int x = a[p];
        while(1){
            while(i<r && a[++i]<x);
            while(a[--j]>x);
            if(i>=j) break;
            swap(a,i,j);
        }
        swap(a,p,j);
        
        return j;
    }
    
    void quicksort(int a[], int p, int r)  
    {
        if(p<r){
            int q = partition(a,p,r);
            quicksort(a,p,q-1);
            quicksort(a,q+1,r);
        }
    }
        
    int main()
    {
        int i;
        int a[] = {5,13,6,24,2,8,19,27,6,12,1,17};
        int N = 12;
        
        quicksort(a, 0, N-1);
        
        for(i=0; i<N; i++) printf("%d ", a[i]);
        printf("
    ");
        
        return 0;
    }

    这个我无良的直接复制过来了。。。

    我就先 列出来。。。

  • 相关阅读:
    建设工程造价数据服务云平台(计价BIM)
    工程造价数据服务云平台(造价BIM)
    工程造价数据服务云平台(造价BIM)
    ie9下对象for..in..的bug
    JavaScript闭包
    JavaScript如何比较两个对象字面量是否一样(key 和 value都对比)
    JavaScript转码和编码
    JavaScript中正则编码
    Sizzle 官方API翻译
    JSONP跨域
  • 原文地址:https://www.cnblogs.com/p201821440039/p/10515964.html
Copyright © 2011-2022 走看看