zoukankan      html  css  js  c++  java
  • 快速排序(啊哈算法)

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    int a[101],n;
    
    void quicksort(int left,int right){
        int i,j,t,tmp;
        if(left>right)
            return ; //当i变为left值,进入第一个递归,right变为0,此时return 结束此递归函数。
        tmp=a[left];
        i=left;
        j=right;
        while(i!=j){
            while(a[j]>=tmp && i<j)
                j--;
            while(a[i]<=tmp && i<j)
                i++;
            if(i<j){
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    
        a[left]=a[i];
        a[i]=tmp;
    
        quicksort(left,i-1);
        quicksort(i+1,right);
        return ;//此处return结束的是这个quicksort函数
    
    }
    int main(){
        int i,j;
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a[i];
        }
        quicksort(1,n);
        for(i=1;i<=n;i++){
                cout<<a[i];
        }
    
        return 0;
        }
    
    

    在递归的嵌套中,会一步一步的又return退出嵌套,其中的i,left,right的值也会返回在进入嵌套递归前的值。比如第一个递归return结束后,i的值重新返回为最开始进入第一个递归前的6
  • 相关阅读:
    你了解RTOS吗?
    [转] git rebase 详解
    MinGW vs MinGW-W64及其它
    【转】Video Rendering with 8-Bit YUV Formats
    Ubuntu假死
    渐进增强和优雅降级的区别
    JavaScript 插件的学习
    菜单的制作
    生活
    小组学习情况
  • 原文地址:https://www.cnblogs.com/mingrigongchang/p/6246289.html
Copyright © 2011-2022 走看看