| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【初学者入门C语言】之算法篇(冒泡排序和选择排序) -> 正文阅读 |
|
[数据结构与算法]【初学者入门C语言】之算法篇(冒泡排序和选择排序) |
目录 一、冒泡排序1.原理? ? ? ? 它从头到尾每次都对相邻的两个数进行比较,将较大(或较小)的数交换到后一个元素中,每一轮的比较都在没有排好的数据中,找出最大数(或最小数)放在这些数的后面。
假设10个人排队int a[10]; 比较第一轮: for(int j=0;j<9;j++){ ? ? ? ? if(a[j]>a[j+1]){ ? ? ? ? ? ? ? ? t=a[j]; ? ? ? ? ? ? ? ? a[j]=a[j+1]; ? ? ? ? ? ? ? ? a[j+1]=t; } }//需要比较9次 比较第二轮 for(int j=0;j<8;j++){ ? ? ? ? if(a[j]>a[j+1]){ ? ? ? ? ? ? ? ? t=a[j]; ? ? ? ? ? ? ? ? a[j]=a[j+1]; ? ? ? ? ? ? ? ? a[j+1]=t; }//需要比较8次(不在比较上一轮已经排好的) ......
直接用两个for循环 for(int i=0;i<9;i++){ ????????for(int j=0;j<9-i;j++){ ? ? ? ? ????????if(a[j]>a[j+1]){ ? ? ? ? ? ? ? ? ????????t=a[j]; ? ? ? ? ? ? ? ? ????????a[j]=a[j+1]; ? ? ? ? ? ? ? ? ????????a[j+1]=t; ???????????????} ????????} } 2.举例? ? ? ? 1.题目
? ? ? ? ?2.代码
? ? ? ? 3.执行结果二、选择排序1.原理? ? ? ? 它是找出最大数(或最小数)放到最前面,它不再是数组前后比较,而是在一轮里一直拿一个位置数跟后面的比较。 ? ? ? ? 通俗的说就是在排队的时候,先拿一号依次跟后面的每一个人都比较,如果和它比较的人比一号小,则他俩换位,小的这个人站第一排,拿这个人跟后面比,以此类推,确保第一个是最低的。第二轮从第二个人开始,重复上面的操作,不在动排好的人 假设10个人排队int a[10]; 比较第一轮: for(int i=0;i<9;i++){ for(int j=i+1;j<10;j++){ ? ? ? ? if(a[i]>a[j]){ ? ? ? ? ? ? ? ? t=a[i]; ? ? ? ? ? ? ? ? a[i]=a[j]; ? ? ? ? ? ? ? ? a[j]=t; } }
2.举例1.题目
2.代码
3.运行结果
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:49:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |