for的冒泡排序练习题
这是一个冒泡排序的方法,请汲取其中的思想。
有一组数: 1,2,3,4,5,6
请将这组数用降序排列。
我们可以将数组里面的数两两相比,如果第二个数比第一个数大,那么将第二个数值与第一个数值交换,然后让其循环比较。
[1,2,3,4,5,6] [2,3,4,5,6,1] [3,4,5,6,2,1] [4,5,6,3,2,1] [5,6,4,3,2,1]
[2,1,3,4,5,6] [3,2,4,5,6,1] [4,3,5,6,2,1] [5,4,6,3,2,1] [6,5,4,3,2,1]
[2,,1,4,5,6] [3,4,2,5,6,1] [4,5,3,6,2,1] [5,6,4,3,2,1] [6,5,4,3,2,1]
[2,3,,5,6] →→→→ [3,4,5,2,6,1] →→→→ [4,5,6,3,2,1] →→→→[5,6,4,3,2,1] →→→→ [6,5,4,3,2,1]
[2,3,4,5,1,6] [3,4,5,6,2,1] [4,5,6,3,2,1] [5,6,4,3,2,1] [6,5,4,3,2,1]
[2,3,4,5,6,1] [3,4,5,6,2,1] [4,5,6,3,2,1] [5,6,4,3,2,1] [6,5,4,3,2,1]
我们可以先定义一个数组n[]将数据赋予n[]; 通过数组运行循环下标来控制数据比较,既n[0]<n[1];这样我们就得到了判定条件,既
if(n[0]<n[1])
{
int m = 0;
m=n[0];
n[0] = n[1];
n[1] = m;
}
在图中红字可以看出 我们通过两位数比较n[0]<n[1]→n[1]<n[2]→n[2]<n[3]→n[3]<n[4]→n[4]<n[5]既n[i]<n[i+1] 循环。
这里我们输入了6个数比较了5次,那么长度就是(n.length-1)。
得到方法:
static void Main(string[] args)
{
int[] n=new int[]{1,2,3,4,5,6}; //定义一个数组
for (int i = 0; i < n.Length-1; i++) //一共比较了几轮
{
for (int j = 0; j < n.Length - 1; j++) //一轮中比较几次
{
if (n[j]<n[j+1])
{
int m = 0;
m=n[j];
n[j] = n[j + 1];
n[j+ 1] = m;
}
}
}
//for (int k = 0; k < n.Length; k++)
//{
// Console.WriteLine(n[k]);
//}
foreach (int item in n) //用for和foreach都行,经过上面的步骤我们已经把n重新排序好了,输出n。
Console.WriteLine(item);
Console.ReadLine();
}
还一种快速方法供大家参考:
static void Main(string[] args)
{
int[] n=new int[]{1,2,3,4,5,6};
for (int i = 0; i < n.Length-1; i++)
{
for (int j = i; j < n.Length - 1; j++)
{
if (n[j]<n[j+1])
{
int m = 0;
m=n[i];
n[i] = n[j + 1];
n[j+ 1] = m;
}
}
}
foreach (int item in n)
Console.WriteLine(item);
Console.ReadLine();
for的冒泡排序练习题的更多相关文章
- C语言折半查找法练习题冒泡排序
C语言折半查找法练习题 折半查找法: 折半查找法是效率较高的一种查找方法.假设有已经按照从小到大的顺序排列好的五个整数num[0]~num[4],要查找的数是key,其基本思想是: 设查找数据的范围下 ...
- Python3练习题 006 冒泡排序
import random a = [random.randint(1,100) for i in range(10)]def bu(target): length = len(target) whi ...
- VBS练习题
练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) i ...
- js部分---数组及练习题;
数据存储--数组: 强类型语言数组 1.同一类型的数据存储的集合,在内存中是连续的 2.定义的时候需要制定长度 弱类型语言数组 1.可以存储任意类型的数据 2.在内存中不连续,不需要制定长度 定义一个 ...
- c#部分---一维数组、冒泡排序、foreach的用法
一维数组:2016-10-14 定义方式:{定义的时候,需要数据类型.长度!} 1.int []aa=new int [5]; 表示数组里面有5个字符: 2.int []aa=new int []{ ...
- Java数组练习题小结
//2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...
- C#基础——数组(冒泡排序)
数组 所谓数组,就是相同数据类型的元素按一定的顺序的集合,就是把有限个类型相同的变量用一个名字来命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量 ...
- 从零开始学习PYTHON3讲义(八)列表类型跟冒泡排序
<从零开始PYTHON3>第八讲 前面我们见过了不少的小程序,也见过了不少不同类型的变量使用的方法.但目前我们涉及到的,还都是单个的变量和单个的立即数.以变量来说,目前我们见到的,基本都 ...
- python3编程练习题
记录一些基础编程练习题和一些遇见的坑 1)输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz.同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in r ...
随机推荐
- NEFU 84 五指山 (扩展欧几里得)
五指山 Problem:84 Time Limit:1000ms Memory Limit:65536K Description 西游记中孙吾空大闹天宫,如来佛祖前来降伏他,说道:"我与你打 ...
- 页面上有两个元素id相同,js中如何取值
页面上有两个table,id都是”cont2",现要在js中取到这两个table,改变样式. js实现: var tab2=document.all.cont2(1);var tab=do ...
- July 3rd, Week 28th Sunday, 2016
2016-07-03 First-hand experience is often necessary for personal growth. 亲身体验通常是成长所必须的. Although som ...
- 如何解决exe4j生成exe文件后弹出提示信息
使用exe4j生成exe文件时会提示以上一段信息,这个主要是没有注册导致的,在welcome to exe4j的右下角有一个注册信息的地方,去找个注册码,就OK了. 通用注册码:L-g782dn2d- ...
- iOS 语录
1. 输入法切换: cmd + space 2. xcode 退出全屏control + cmd + f 3. xcode 代码格式化插件Uncrustify,XAlign, CLangFormat ...
- hdu1798(几何面积计算)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1798 题意:给出两个圆的圆心坐标与半径,求他们相交部分的大小 思路:有三种情况: 1. 两圆相离,ar ...
- iOS - HTTPS接口加密和身份认证
为什么要使用HTTPS代替HTTP HTTPS和HTTP的区别 https协议需要到CA申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https则是具有安全性的SS ...
- ExcelReport第一篇:使用ExcelReport导出Excel
导航 目 录:基于NPOI的报表引擎——ExcelReport 下一篇:ExcelReport源码解析 概述 本篇将通过导出学生成绩的示例演示“使用ExcelReport导出Excel”的步骤. ...
- 6-01T-SQL中的运算符
算术运算符:+.-.*./.%. 赋值运算符:= 逻辑运算符:AND.OR.NOT. 比较运算符:>,<,<=,>=,<>.=,!=. 连接运算符:"+& ...
- mysql 查询优化规则
.请不要在SELECT中使用DISTINCT: #会用到临时表 .尽可能不要SELECT *,而应该查询需要用到的指定几个字段: .不要对两个大表进行联合,无论是内联或外联.对于需要对两个或多个表进行 ...