精华内容
下载资源
问答
  • 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语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序
  • C语言冒泡排序法的详细注释C语言冒泡排序法的详细注释?起泡排序法的基本思想是:对于一个待排序的序列(假设按升序排序),从左向右依次比较相邻的两个数,如果左边的数大,则交换两个数以使右边的数大。这样比较、...

    C语言冒泡排序法的详细注释

    C语言冒泡排序法的详细注释?

    起泡排序法的基本思想是:对于一个待排序的序列(假设按升序排序),从左向右依次比较相邻的两个数,如果左边的数大,则交换两个数以使右边的数大。这样比较、交换到最后,数列的最后一个数则是最大的。然后在对剩余的序列进行相同的操作。这个操作过程被称为一次起泡。

    一次起泡的操作只能使数列的最右端的数成为最大者。对于10个数而言,需要9次这样的起泡过程。

    /*用冒泡排序法对一维整型数组中的十个数升序排序*/

    #include

    int main()

    {

    int i,j,t,a[10];

    printf("Please input 10 integers:\n");

    for(i=0;i<10;i++)

    scanf("%d",&a[i]);

    for(i=0;i<9;i++) /* 冒泡法排序 */

    for(j=0;j<10-i-1;j++)

    if(a[j]>a[j+1])

    {

    t=a[j];/* 交换a[i]和a[j] */

    a[j]=a[j+1];

    a[j+1]=t;

    }

    printf("The sequence after sort is:\n");

    for(i=0;i<10;i++)

    printf("%-5d",a[i]);

    printf("\n");

    system("pause");

    return 0;

    }

    其中i=0时:

    j从0开始a[0],a[1]比较大小,把其中的较大者给a[1],然后j++,a[1]和a[2]再比较,再把两者中的 较大者给a[2],这样a[0],a[1],a[2]中的最大者已经交换到a[2]中,这样继续直到j=10-i-1=9这样 a[9]中的为10个数中的最大数。

    然后i=1时:

    由于最大数已找到并放到a[9]中,所以这一次循环j最大只需到10-i-1=8,即a[8]即可,再次从j=0开始a[j]和a[j+1]两两比较交换,最后次大数放到a[8]中然后i++,继续...

    当i=9时已经过9次两两比较完成所有排序,i<9不再成立退出比较。

    对于n个数,只需要进行n-1次外循环的两两比较就完成排序。

    至于按降序排列只需将if(a[j]>a[j+1])改为if(a[j]

    /*用改进型冒泡排序法对一维整型数组中的十个数升序排序*/

    #include

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

    2015-06-20 13:28:43
    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语言冒泡排序法的实现(升序排序法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C语言冒泡排序法心得

    2020-09-02 21:39:22
    相信学过C语言的朋友都知道,在C语言中,常用的排序算法有:冒泡排序、快速排序、插入排序、选择排序、希尔排序、堆排序以及归并排序等等。...在这里呢,主要是想和大家一起来探讨探讨C语言冒泡排序法
  • C语言冒泡排序法……

    2009-09-25 10:52:11
    冒泡排序 C语言冒泡排序 C语言冒泡排序 C语言冒泡排序 C语言
  • 满意答案WAS1231232015.05.25采纳率:52%等级:8已帮助:860人123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include<...
  • 本文主要介绍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};...
  • C语言冒泡排序法.c

    2020-05-07 14:53:58
    自己学习用来记录,并给C语言的初学者解答对基础的疑惑。此章为C语言冒泡排序,进行两轮循环,最后再输出,先想每轮 的步骤,再总结一起。
  • c语言冒泡排序法

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

    2020-12-20 21:52:56
    关于冒泡排序法 对于同学更容易的理解,下面举一个例子: ####从键盘输入5个数;对它们由小到大排序。 //冒泡排序:从键盘上输入10个数,按从小到大顺序输出所有元素 #include "stdio.h" void px(int a[]); void ...
  • C语言冒泡排序算法及代码

    万次阅读 多人点赞 2019-03-12 15:25:23
    C语言冒泡排序算法及代码 冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。 “冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 这里以从小到大排序为例...
  • C语言冒泡排序法的简单程序.doc 求一个C语言冒泡排序法的简单程序 悬赏分:50 - 解决时间:2007-9-4 11:16 我不明白怎么写 随便给我个就行 谢谢了 提问者: redangel0002 - 助理 二级 最佳答案 main() { int ...
  • c语言 冒泡排序法

    2021-01-26 00:03:03
    冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。 其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就...
  • 冒泡排序法: 所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换...
  • C语言冒泡排序法和选择排序法的区别

    万次阅读 多人点赞 2016-11-17 15:45:01
    冒泡排序法: #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include void rank(int arr[], int len) { int i = 0; int j = 0; int temp = 0; for (i = 0; i ; i++) { for (j = 0; j ;
  • c语言冒泡排序

    2019-09-04 22:43:52
    c语言冒泡排序法,简单易懂,实例可直接在VS上运行 。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,272
精华内容 4,908
关键字:

c语言冒泡排序法代码

c语言 订阅