精华内容
下载资源
问答
  • c语言冒泡排序法代码

    2020-09-05 14:19:39
    c语言冒泡排序法代码,这个是大家最早接触的算法吧,总在写 总在错,学习就是这么个过程, 温故才知新, 望自己谨记
  • 冒泡排序,c语言冒泡排序法代码冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们...

    冒泡排序,c语言冒泡排序法代码

    冒泡排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

    它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

    这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

    中文名

    外文名

    时间复杂度

    实质

    冒泡排序

    Bubble Sort

    O(n²)

    把小(大)的元素往前(后)调

    /**

    * 冒泡排序

    */

    // 定义数组

    int[] array = new int[]{5, 3, 1, 6, 2, 19, 7, 88, 32};

    // 定义并初始化一个int类型的临时变量

    int temporary = 0;

    // 外层循环控制数组排序共需要循环多少次(每次相邻的两个元素进行比较,只需要比较数组总元素个数-1次)

    for (int i = 0; i < array.length - 1; i++) {

    // 内层循环控制第i次排序需比较多少次

    //(例如:第一次排序后会确定数组中最大的一个数,且不再参与比较。第二次再确定一个除最大数以外较大的数。以此类推)

    // 所以每次循环(数组的长度-i-1)次数即可。

    // 不可以使用(数组的长度-j-1),会导致循环提前结束而不计算数组中剩余元素的比较

    for (int j = 0; j < array.length - i - 1; j++) {

    // 相邻的两个元素进行比较,将较大的元素赋值给临时变量,从而实现换位操作

    if (array[j] > array[j + 1]) {

    temporary = array[j];

    array[j] = array[j + 1];

    array[j + 1] = temporary;

    }

    }

    }

    // 遍历排序后数组中的元素

    for (int k = 0; k < array.length; k++) {

    System.out.println(array[k]);

    }

    }

    }

    控制台输出:

    39145c1113e8aff9e10144790b7a2a5e.png

    相关文章暂无相关文章

    展开全文
  • 文件操作,c语言冒泡排序法代码一 读1. r模式 只读f = open('t1',mode = 'r',encoding = 'utf-8')f -- 文件句柄 所有对文件的操作都是操作文件句柄第一个内容是文件的路径,必须是字符串)第二个内容(mode)是对这个...

    文件操作,c语言冒泡排序法代码

    一 读

    1. r模式 只读

    f = open('t1',mode = 'r',encoding = 'utf-8')

    f -- 文件句柄 所有对文件的操作都是操作文件句柄

    第一个内容是文件的路径,必须是字符串)

    第二个内容(mode)是对这个文件的操作方式 可以直接写'r'

    第三个内容(encoding)是这个文件的编码集

    f = open('t1',mode = 'r',encoding = 'utf-8')

    print(f.read())

    f.close() # 打开文件最后要关闭文件

    with open('t1',mode = 'r',encoding = 'utf-8')as f: #上下文管理,不用后自动关闭 as后是变量名

    print(f.read())

    2. rb模式 读取字节

    f = open('t1',mode = 'rb')

    f = open('E:\Python学习笔记\Python学习手册',mode = 'rb')

    f = open('E:\\Python学习笔记\\Python学习手册',mode = 'rb')

    f = open(r'E:\Python学习笔记\Python学习手册',mode = 'rb') # r 和\\都是转义

    print(f.read())

    f.close()

    绝对路径:E:\Python学习笔记\Python学习手册

    相对路径(推荐路径):相对本文件的路径

    ..\ 返回上一级

    repr() 显示数据的原生态

    二 写

    1. w 模式 覆盖写 在写之前先把之前的内容清空

    f = open('t1',mode = 'w',encoding = 'utf-8')

    f.write('我爱你')

    f.flush() # 刷新,防止遗漏

    f.close()

    w模式,如果文件不存在就新建一个

    2. wb 模式

    f = open('t1',mode = 'rb')

    f1 = open('t1',mode = 'wb')

    f1.write(f.read())

    f.close()

    3. a 模式 追加

    f = open('t1',mode = 'a',encoding = 'utf-8')

    f.write('我爱你')

    f.close()

    文件最后添加内容

    w 只写,没有读的功能

    三 可读可写

    1. r+ 读+写 最常用

    f = open('t1',mode = 'r+',encoding = 'utf-8')

    print(f.read())

    f.write('我爱你')

    f.close()

    先读后写

    2. w+ 写+读

    f = open('t1',mode = 'w+',encoding = 'utf-8')

    f.write('我爱你') #写完之后光标在最后

    f.seek(0) #移动光标到头

    print(f.read())

    f.close()

    3. a+ 写+读 光标永远在最后

    f = open('t1',mode = 'a+',encoding = 'utf-8')

    f.seek(0) #移动光标到头

    f.write('我爱你')

    print(f.read())

    f.close()

    四 其他操作

    1. f.tell() 查看光标

    with open('t1','r',encoding = 'utf-8')as f:

    print(f.read())

    print(f.tell()) #查看光标 数的是字节

    2. f.seek() 移动光标

    ()里为单数字,按字节移动

    (0)为文件头部

    ()里为双数字

    (0,0)为文件头部

    (0,1)为当前位子

    (0,2)为文件尾部

    3. f.truncate() 截取 ()里为字节数

    with open('t1','r',encoding = 'utf-8')as f:

    print(f.read(3))

    f.truncate(9) #截取,指定字节之后的内容清空

    4. 文件重命名

    import os

    os.rename('t1','t2') #吧t1改成t2

    5. 更改文件内容

    with open('t1','r',encoding = 'utf-8')as f,\

    open('t2','a',encoding = 'utf-8')as f1:#创建一个新文件(\表示一行写不下换行)

    msg = f.read()

    msg = msg.replace('1','2')

    f1.write(msg)

    import os

    os.remove('t1')

    os.rename('t2','t1')

    先创建一个新文件,然后读取原文件,更改内容写到新文件,删除原文件,后给新文件重命名

    with open('t1','r',encoding = 'utf-8')as f,\

    open('t2','a',encoding = 'utf-8')as f1:

    for i in f: #一行一行读取,相当于readline()

    i = i.strip().replace('1','2')

    f1.write(i)

    import os

    os.remove('t1')

    os.rename('t2','t1')

    当文件很大时,一行一行读取然后更改

    http://www.dengb.com/Pythonjc/1378581.htmlwww.dengb.comtruehttp://www.dengb.com/Pythonjc/1378581.htmlTechArticle文件操作,c语言冒泡排序法代码 一 读 1. r模式 只读 f = open('t1',mode = 'r',encoding = 'utf-8') f -- 文件句柄 所有对文件的操作都是操作文件句柄...

    展开全文
  • C语言冒泡排序算法代码

    万次阅读 多人点赞 2019-03-12 15:25:23
    C语言冒泡排序算法代码 冒泡排序排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。 “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 这里以从小到大排序为例...

    C语言冒泡排序算法及代码

    冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。

    “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

    这里以从小到大排序为例进行讲解。
    基本思想及举例说明
    冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。

    下面以对 3 2 4 1 进行冒泡排序说明。

    第一轮 排序过程
    3 2 4 1 (最初)
    2 3 4 2 (比较3和2,交换)
    2 3 4 1 (比较3和4,不交换)
    2 3 1 4 (比较4和1,交换)
    第一轮结束,最大的数4已经在最后面,因此第二轮排序只需要对前面三个数进行再比较。

    第二轮 排序过程
    2 3 1 4 (第一轮排序结果)
    2 3 1 4 (比较2和3,不交换)
    2 1 3 4 (比较3和1,交换
    第二轮结束,第二大的数已经排在倒数第二个位置,所以第三轮只需要比较前两个元素。

    第三轮 排序过程
    2 1 3 4 (第二轮排序结果)
    1 2 3 4 (比较2和1,交换)
    至此,排序结束。
    算法总结及实现
    对于具有N个元素的数组R[n],进行最多N-1轮比较;

    第一轮,逐个比较(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-1], R[N]) ; 最大的元素会被移动到R[N]上。

    第二轮,逐个比较(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-2], R[N-1]);第二大元素会被移动到R[N-1]上。

    。。。。
    以此类推,直到整个数组从小到大排序。

    下面给出了冒泡排序的一般实现和优化实现。一般实现是教科书里常见的实现方法,无论数组是否排序好了,都会进行N-1轮比较; 而优化实现,在数组已经排序好的情况下,会提前退出比较,减小了算法的时间复杂度。

    #include<stdio.h>
    #include<stdlib.h>
    #define N 8
    void bubble_sort(int a[],int n);
    //***一般实现***
    void bubble_sort(int a[],int n)//n为数组a的元素个数
    {
        //一定进行N-1轮比较
        for(int i=0; i<n-1; i++)
        {
            //每一轮比较前n-1-i个,即已排序好的最后i个不用比较
            for(int j=0; j<n-1-i; j++)
            {
                if(a[j] > a[j+1])
                {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
    ```
    
    ```
    //***优化实现***
    void bubble_sort_better(int a[],int n)//n为数组a的元素个数
    {
        //最多进行N-1轮比较
        for(int i=0; i<n-1; i++)
        {
            bool isSorted = true;
            //每一轮比较前n-1-i个,即已排序好的最后i个不用比较
            for(int j=0; j<n-1-i; j++)
            {
                if(a[j] > a[j+1])
                {
                    isSorted = false;
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1]=temp;
                }
            }
            if(isSorted) break; //如果没有发生交换,说明数组已经排序好了
        }
    }
    int  main()
    {
        int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};
        bubble_sort(num, N); //或者使用bubble_sort_better(num, N);
        for(int i=0; i<N; i++)
            printf("%d  ", num[i]);
        printf("\n");
        system("pause");
        return 0;
    }
    
    展开全文
  • 本文主要介绍C语言冒泡排序算法,这里给大家举例说明冒泡排序的思想,并附有代码示例,有需要的小伙伴可以参考下
  • C语言冒泡排序算法源程序,冒泡排序算法的思路即两两进行大小比较,交换排序,通过相邻数据的比较交换从而实现排序目的。
  • C语言冒泡排序法代码

    千次阅读 2020-06-27 23:46:06
    C语言冒泡排序算法代码 冒泡排序排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。 “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 这里以从小到大排序为例...

    C语言冒泡排序算法及代码

    冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。

    “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

    这里以从小到大排序为例进行讲解。
    基本思想及举例说明
    冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。

    下面以对 3 2 4 1 进行冒泡排序说明。

    第一轮 排序过程
    3 2 4 1 (最初)
    2 3 4 2 (比较3和2,交换)
    2 3 4 1 (比较3和4,不交换)
    2 3 1 4 (比较4和1,交换)
    第一轮结束,最大的数4已经在最后面,因此第二轮排序只需要对前面三个数进行再比较。

    第二轮 排序过程
    2 3 1 4 (第一轮排序结果)
    2 3 1 4 (比较2和3,不交换)
    2 1 3 4 (比较3和1,交换
    第二轮结束,第二大的数已经排在倒数第二个位置,所以第三轮只需要比较前两个元素。

    第三轮 排序过程
    2 1 3 4 (第二轮排序结果)
    1 2 3 4 (比较2和1,交换)
    至此,排序结束。
    算法总结及实现
    对于具有N个元素的数组R[n],进行最多N-1轮比较;

    第一轮,逐个比较(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-1], R[N]) ; 最大的元素会被移动到R[N]上。

    第二轮,逐个比较(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-2], R[N-1]);第二大元素会被移动到R[N-1]上。

    。。。。
    以此类推,直到整个数组从小到大排序。

    下面给出了冒泡排序的一般实现和优化实现。一般实现是教科书里常见的实现方法,无论数组是否排序好了,都会进行N-1轮比较; 而优化实现,在数组已经排序好的情况下,会提前退出比较,减小了算法的时间复杂度。

    #include<stdio.h>
    #include<stdlib.h>
    #define N 8
    void bubble_sort(int a[],int n);
    //一般实现
    void bubble_sort(int a[],int n)//n为数组a的元素个数
    {
    //一定进行N-1轮比较
    for(int i=0; i<n-1; i++)
    {
    //每一轮比较前n-1-i个,即已排序好的最后i个不用比较
    for(int j=0; j<n-1-i; j++)
    {
    if(a[j] > a[j+1])
    {
    int temp = a[j];
    a[j] = a[j+1];
    a[j+1]=temp;
    }
    }
    }
    }

    
    

    //优化实现
    void bubble_sort_better(int a[],int n)//n为数组a的元素个数
    {
    //最多进行N-1轮比较
    for(int i=0; i<n-1; i++)
    {
    bool isSorted = true;
    //每一轮比较前n-1-i个,即已排序好的最后i个不用比较
    for(int j=0; j<n-1-i; j++)
    {
    if(a[j] > a[j+1])
    {
    isSorted = false;
    int temp = a[j];
    a[j] = a[j+1];
    a[j+1]=temp;
    }
    }
    if(isSorted) break; //如果没有发生交换,说明数组已经排序好了
    }
    }
    int main()
    {
    int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};
    bubble_sort(num, N); //或者使用bubble_sort_better(num, N);
    for(int i=0; i<N; i++)
    printf("%d “, num[i]);
    printf(”\n");
    system(“pause”);
    return 0;
    }

    展开全文
  • 冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或...
  • C语言冒泡排序算法

    千次阅读 多人点赞 2018-12-25 17:05:57
    冒泡排序的概念:冒泡排序(Bubble Sort)是一种简单的交换排序,它是通过两两比较相邻记录的关键字,如果发生逆序就进行交换,从而使关键字小的记录如气泡一般逐渐往上“漂浮”(左移),或者使关键字大的记录如...
  • 在利用C语言进行相关程序的编写时算法的运用尤为普遍,而在算法中通常都会用到一种称为“冒泡排序算法”的算法。对于大多数初学者,按照字面意思来理解想必是认为就是在编写过程中时不时就会出现一下的算法?那么...
  • C语言冒泡排序法的实现(升序排序法)发布时间:2020-09-19 18:53:46来源:脚本之家阅读:108作者:Geek宝宝任务代码:数字的排序:#include #define SIZE 10int main(){int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};...
  • 为了易用,我编写排序函数,这和直接在主调函数...冒泡排序法void sort(int * ar,int k) //ar指向数组名,k是元素个数{int i,j,temp;; i < k - ; i++){ //比较k-1趟就可以了; j < k - i -; j++){]){temp = ...
  • 主要介绍了C语言冒泡排序法的实现(升序排序法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C语言基础-基本算法 C语言基础-数据类型 C语言中的输入输出函数 C语言流程控制语句 C语言数组——一维数组 C语言数组——二维数组 C语言数组——字符数组 C语言中常用的6个字符串处理函数 精心收集了60个C语言项目...
  • C语言冒泡排序法心得

    2021-01-20 06:49:25
    入门级别的算法中有个叫冒泡排序法,也有称为气泡排序法.那时候刚接触它就对它的名字特别感兴趣,因为觉得很有意思.好了,废话不多说了,我们先一起简单回忆下这个冒泡排序法.  一.打印行和列一般是这样的一个简单代码,...
  • c语言 冒泡排序算法

    千次阅读 2014-08-27 21:36:26
    冒泡排序排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。 “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 这里以从小到大排序为例进行讲解。 基本...
  • 冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或...
  • 冒泡排序排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例...
  • 原始的冒泡排序法 1.基本原理 从下标为0的元素开始,循环比较相邻两个元素a[j]和a[j+1]的大小,每次比较如果前面的元素a[j]都大于后面的元素a[j+1],则交换这两个元素的值。 2.执行过程 第一轮: 从a[0]到a[n-1],...
  • C语言冒泡排序法

    2019-03-18 19:20:21
    已经通过vc++6.0,以及通过DEV c++验证,可以实现冒泡排序的功能,亲测有效,可供c语言初学者学习,参考
  • c语言冒泡排序算法

    2016-04-01 15:10:31
    结果: 代码:#include void main() { int i, j, temp; int a[10]; for (j = 0; j ; j++) { for (i = 0; i ; i++) { if (a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i
  • 排序(sorting)就是调整列表的顺序,是计算机编程中经常要做的一件事情。经过排序以后的数据,可以极大地提高...图 1 演示了用冒泡排序法对 5 个数进行排序的过程。图 1:冒泡排序(从大到小)随机生成 10 个 100 内...
  • c语言冒泡排序法

    2021-07-06 22:48:40
    冒泡排序法 从左到右比较相邻元素,每比较一轮,所有数中最大的会排到最右边,以此类推,实现从小到达排序。 代码如下:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,519
精华内容 17,407
关键字:

c冒泡排序法代码