[C程序设计基础]快速排序

//从大到小排序
///三个参数 a要排序的 数组, l扫左边的  r扫右边
void quickSort(int a[],int l, int r){
    /// 左边要小于 右边才有意义
    if (l < r){
        //保存 一下  ,基准定为X
        int i = l, j = r;
        int x = a[i];

        ///左边小于右边才开始循环,排序里面
        while (i < j) {

            ///从 右边开始向左查找,大于等于 基准X的值。
            while (i < j && a[j]<x)
                j--;
            if (i < j)
                a[i++] = a[j];///调换 他们的值
            ///该从左边开始向右查找 小于X的值
            while (i < j && a[i]>x)
                i++;
            if (i < j)
                a[j--] = a[i];
        }
        ///然后把 x的值 赋值回去
        a[i] = x;
        ///递归 左边
        quickSort(a, l, i-1);
        ///右边
        quickSort(a, i+1, r);
    }

}

  

时间: 2024-11-10 07:39:42

[C程序设计基础]快速排序的相关文章

《程序设计基础》考试大纲 复习-C语言

一    程序设计基础知识 了解程序和程序语言的概念以及程序设计的步骤.算法的概念.基本特征和 表示:理解程序的三种基本结构.结构化程序设计方法;熟悉几种常见的算法描 述方法:如自然语言.流程图.N-S 流程图及伪代码等. 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.                          计算机程序是由数据结构和算法构成的. 程序语言是指被设计为在计算机上使用的,用于设计开发程序.定义算法或数据结构的一种语言规范 算法的概念 算法是对解决

Java程序设计基础项目总结报告

Java程序设计基础项目总结报告 20135313吴子怡 一.项目内容 运用所学Java知识,不调用Java类库,实现密码学相关算法的设计,并完成TDD测试,设计运行界面. 二.具体任务 1.要求实现的密码算法包括:对称密码算法,非对称密码算法,消息摘要算法. 2.要求完成对每个算法中的public类进行TDD测试,测试代码尽可能多,并且应尽可能涵盖特殊符号.数字.字母等输入字符. 3.设计每个密码算法的GUI界面,提供输入输出区域供使用者输入.查看. 三.计划明细 周数 进度安排 备注 Wee

端午已过,程序设计基础也已学完

经过一周的学习,丢下几年课本的我,又重新拿起了曾经遗忘的东西,慢慢回忆,慢慢品尝,通过这一周的学习,让我学会了如何用计算机的思想来编写程序,在设计程序的时候必须要首先考虑的东西,不是语法,不是语句,不是算法,而是静下心来,把流程图画出来,然后再确立算法,最后才开始编写代码,在考虑问题的时候需要把自己的逻辑理清楚,让我们自己的代码可读性变高,在设计程序的时候还需要注意让我们的程序达到一个通用性,适应性,能在不同的条件下执行,在写代码的过程中,我们也需要注意不要急躁,急着一次性写完是不科学的,我们每

C#程序设计基础——常量

C#程序设计基础——常量 常量是在编译时已知,并且在程序的生存期内不发生更改的不可变值.常量使用const修饰符进行声明. 常量必须在声明时初始化,且常量的类型必须为以下类型之一:sbyte/byte/short/ushort/int/uint/long/ulong/char/float/double/decimal/bool/string/枚举类型/引用类型. 当编译器遇到C#源代码中的常量修饰符时,将直接把文本值替换到它生成的中间语言代码中.因为在运行时没有与常量关联的变量地址,所以cons

程序设计基础之端哥建议篇(一)

今闻下一届学弟学妹的程序设计基础课程将于暑期进行,且每日时间长达8小时,回想当年入门编程之窘境,故今来此开篇博文,日后有空会继续添加. 希望可以对大家有所助益.若有任何关于C++的疑问,欢迎QQ咨询(414445050),邮件也可以(QQ邮箱即可) 当年学程序设计基础,最难之处不在语言,不在指针,不在算法,全在入门.顿悟程序设计的感觉是入门最要紧的事情,就我个人体会而言,如何做到这一点呢? 1. 首先必须要从繁琐的语言细节中解脱出来,比如教材中第二章关于数据类型和运算符的部分,粗略看看有些概念即

【原创 Hadoop&amp;Spark 动手实践 10】Spark SQL 程序设计基础与动手实践(下)

[原创 Hadoop&Spark 动手实践 10]Spark SQL 程序设计基础与动手实践(下) 目标: 1. 深入理解Spark SQL 程序设计的原理 2. 通过简单的命令来验证Spark SQL的运行原理 3. 通过一个完整的案例来验证Spark SQL的运行原理,自己实际动手来进行掌握 4. 顺利完成“篮球运动员评估系统”

【原创 Hadoop&amp;Spark 动手实践 9】Spark SQL 程序设计基础与动手实践(上)

[原创 Hadoop&Spark 动手实践 9]SparkSQL程序设计基础与动手实践(上) 目标: 1. 理解Spark SQL最基础的原理 2. 可以使用Spark SQL完成一些简单的数据分析任务 3. 可以利用Spark SQL完成一个完整的案例

PL/SQL程序设计基础语法详解(一)

一.什么是PL/SQL(Procedure Language/SQL) 概念:PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力. PL/SQL的结构: declare 说明部分 (变量说明,光标申明,例外说明 ] begin 语句序列 (DML语句]- exception 例外处理语句 End; 简单的PL/SQL程序 如果是在命令行中需要使用 set serveroutput on先打开显示 declare

程序设计基础

程序设计 第一天 第一章 1.软件:软件是由程序和数据构成.(程序是用来处理数据的) 2.程序语言的发展史:1.机器语言2.汇编语言3.高级语言 机器语言主要是由(0,1): 汇编语言是在机器语言的基础上多了一种助记符. 高级语言:C语言是各种高级语言例如:java,c++,javasrcipt等的祖先,是最古老的语言,人们也可称它为中级语言. 3.软件开发的基本方法及步骤:1.分析问题,建立数学模型2.确定数据结构及算法3.编写程序4.调试程序 算法:好的算法的标准(自然思维) 算法分为:1.