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 ...
随机推荐
- 【leetcode】Restore IP Addresses (middle)
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- Android笔记:菜单
1.按键调出菜单 public boolean onCreateOptionsMenu(Menu menu) 重写建立菜单方法 public boolean onOptionsItemSelected ...
- iOS添加另一个控制器的时候要注意啊
ios的父控制器控制器和子控制器之间的注意点: " >> #warning 需要把新创建出来的控制器添加成子控制器 . 不然子控制器里面的子控件无法响应点击事件 " 一 ...
- No space left on device 解决Linux系统磁盘空间满的办法
最近Linux电脑在执行mvn时候总是报错: No space left on device 原因是磁盘空间满了,我马上加了20G的硬盘容量,但是还是报错,上网查了一下,发现了解决方法,我用了其中 ...
- 检查C++内存泄露
#ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_ ...
- 指针和引用的区别(c/c++)
http://blog.csdn.net/thisispan/article/details/7456169 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用 ...
- 清空mysql的历史记录
# vi ~/.mysql_history show tables; show databases; 清空里面的内容,并不用退出当前shell,就可以清除历史命令!!
- DOM – 4.doucument属性
4.document属性 2.1 write 2.2 getElementById 方法 getElementsByName getElementsByTagName 案例:全选反选 案例:点击一个按 ...
- Delphi中record和packed record的区别
转载:http://blog.csdn.net/rznice/article/details/6566978 第一种不带packed关键字的结构体表明编译器编译时要求进行字对齐. 而第二种带packe ...
- Shell编程基础教程1--Shell简介
1.Shell简介 1.1.查看你系统shell信息 cat /etc/shell 命令可以获取Linux系统里面有多少种shell程序 echo $SHELL 命令可以查看当前你所使用的shell是 ...