数组以及冒泡排序


数组

1、概念:可以帮我一次声明多个同类型的变量,这些变量再内存中是连续存储的。

2、声明语法数据类型[] 数组名 = new 数据类型[数组长度]
    数组长度:一次要声明的同类型的变量个数。是在定义这个数组的时候就确定了,或者是用初始化声明的时候,初始化的值就确定了,以后是不可变的
    eg:int[] score = new int[5];声明了一个长度为5的数组,数组名为score,通俗点说,就是声明了一个数组,里面包含了5个int类型的变量,数组名叫score,里面的5个int类型的变量叫做:数组元素。
3、数组的访问:通过下标(索引)来访问数组。数组名[编号]。编号是从0开始的,最后一个编号是数组的个数减一
4、初始化数组:int类型的数组一旦声明,里面的每一个元素被初始化成0。通过快速监视发现,string数组的默认初始化为null,但是还是能够输出
5、数组长度:通过 数组名.Length 可以获得数组的长度,也就是数组的个数
6、遍历数组:依次访问数组或者集合中的每一个元素,并且每一个元素只是被访问一次
7、直接赋值方式声明数组:int[] nums = {5,3,8}; 声明一个长度为3的数组,每一个元素的值分别为:5,3,8,元素的值之间用逗号隔开。外层直接用以大括号 
int[] nums = new int[3]{5,3,8};这种方式声明中大括号中的数据个数必须和数组长度一样,否则报错,故最好不要用这种方式来声明数组
int[] nums = new int[5]{5,3,8}; //error  数组个数与长度不匹配
int[] nums = new int[]{5,3,8};//OK,可以声明长度

string[] strArr = { "zhangshan", "lisi", "wangwu" };

 

<span style="font-size:18px;">            int[] intArr = new int[5];int[] intArr2 = new int[] { 5, 3, 8 };//错误	2	应输入长度为“5”的数组初始值	//int[] intArr3 = new int[5] { 5, 3, 8 };int[] intArr4 = { 5, 3, 8 };//给数组赋值for (int i = 0; i < intArr.Length; i++){Console.WriteLine("请输入第{0}个数:", i);intArr[i] = Convert.ToInt32(Console.ReadLine());}//遍历数组for (int i = 0; i < intArr.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr[i]);}Console.WriteLine("数组 intArr2 的长度为:{0}", intArr2.Length);   //3for (int i = 0; i < intArr2.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr2[i]);}Console.WriteLine("数组 intArr4 的长度为:{0}", intArr2.Length);   //3for (int i = 0; i < intArr4.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr4[i]);}string[] strArr = { "zhangshan", "lisi", "wangwu" };for (int i = 0; i < strArr.Length; i++){Console.WriteLine(strArr[i]);}</span>



 

冒泡排序

让数组中的元素两两比较(第i个和第i+1个进行比较),经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律进行排列。两两比较的时候,如果是从大到小排列则用小于号,如果是从小到大排列则用大于号。


 

<span style="font-size:18px;">            //源数组int[] arr = { 3, 56, 23, 67, 11, 13, 4, 14, 67 };</span>

从小到大的冒泡排序:

 

<span style="font-size:18px;">//从小到大冒泡排序//控制比较的趟数for (int i = 0; i < arr.Length-1; i++){//控制每一趟比较的次数for (int j = 0; j < arr.Length - 1 - i; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}Console.WriteLine("从小到大排序结果为:");for (int i = 0; i < arr.Length; i++){Console.Write(arr[i] + ",");}</span>


从大到小的冒泡排序:

<span style="font-size:18px;">//从大到小排序//控制趟数for (int i = 0; i < arr.Length-1; i++){//控制每一趟比较的次数for (int j = 0; j < arr.Length-1-i; j++){if (arr[j] < arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}Console.WriteLine("");Console.WriteLine("从大到小排序结果为:");for (int i = 0; i < arr.Length; i++){Console.Write(arr[i] + ",");}</span>




 

转载于:https://www.cnblogs.com/qigang/p/3841939.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery触发a标签的点击事件无效

1 <a id"workFrame" href"pages/work.html" target"FrameBox">首页</a> 2 3 $("#workFrame").tigger("click"); 上述的代码&#xff0c;其实挺正常的&#xff0c;但是怎么也触发不了a标签的cli…

操作系统上机作业--多线程排序

sort.c: 多线程排序 • 主线程创建一个辅助线程 • 主线程使用选择排序算法对数组的前半部分排序 • 辅助线程使用选择排序算法对数组的后半部分排序 • 主线程等待辅助线程运行結束后,使用归并排序算法归并数组的前半部分和后半部分 实现思路&#xff1a; ARRAY_CO…

jdk5下载链接

查看jdk版本 java -versionJDK下载 最新版本http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJDK下载 版本1.5.22http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html#jdk-1.5.0_22-oth-JPR JDK…

html的细节优化,网站页面优化细节详解

原标题&#xff1a;网站页面优化细节详解SEO页面优化是继SEO结构优化之后&#xff0c;另一个重要优化地方;页面标题在每个页面中的关键位置&#xff0c;出现目标关键词&#xff0c;这是我们做页面优化的基础思路&#xff0c;关键词位置&#xff0c;都有哪些呢?第一个是关键位置…

突击优化算法!

Matlab语言可以与C/C语言转换或调用。 Matlab语句&#xff1a;load name 把name中文件的所有变量载入到工作空间中。save name 保存工作空间的变量到name.mat中。 cholesky分解把一个正定矩阵分为一个下三角矩阵和它转置矩阵的乘积。 两种创立符号函数的方法&#xff1a;sym函数…

操作系统上机作业--使用条件变量解决生产者、计算者、消费者问题(多线程)

pc1.c: 使用条件变量解决生产者、计算者、消费者问题 /* • 系统中有3个线程&#xff1a;生产者、计算者、消费者 • 系统中有2个容量为4的缓冲区&#xff1a;buffer1、buffer2 • 生产者生产a、b、c、‘d、e、f、g、h八个字符&#xff0c;放入到buffer1 • 计算者从b…

淘宝代码和html区别,taobao.html

taobao主题市场女装 /男装 /内衣 >鞋靴 /箱包 /配件 >童装玩具 /孕产 /用品 >家电 /数码 /手机 >女装 /男装 /内衣 >鞋靴 /箱包 /配件 >童装玩具 /孕产 /用品 >家电 /数码 /手机 >女装 /男装 /内衣 >鞋靴 /箱包 /配件 >童装玩具 /孕产 /用品 >…

程序各个段text,data,bss,stack,heap

网上找了一堆资料学习一下,了解这些, 有助于规化程序结构,优化代码; 使用gcc编译出来的程序,用size可以查看程序结构和大小, 如 1: #size hello 2: Text data bss dec hex filename 3: 778 200 4 982 3D6 hello 所以一个可执行的程序文件,结构分三部分: .text 代码段,用来存…

让 keil MDK 支持C99

打开options fot target-> C/C 在 Misc Controls 中添加 --c99. 转载于:https://www.cnblogs.com/svchao/p/4585034.html

html从日期格式中获取年,js转换日期格式(Js获取年月日及时间转换)

1、获取年、月、日和将时间戳转换成日期格式// 简单的一句代码var date new Date(时间戳); //获取一个时间对象/**1. 下面是获取时间日期的方法&#xff0c;需要什么样的格式自己拼接起来就好了2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_o…

月半小夜曲

转载于:https://www.cnblogs.com/yesihoang/p/4588319.html

操作系统上机作业-- 使用信号量解决生产者、计算者、消费者问题(多线程)

pc2.c: 使用信号量解决生产者、计算者、消费者问题 • 功能和前面的实验相同&#xff0c;使用信号量解决 实现思路: 生产者、计算者、消费者三者之间的关系和上一个编程任务一样&#xff0c;不一样的是&#xff0c;将互斥量、条件变量封装起来作为信号量&#xff0c;处理方…

Singleton 单件

模式分类 从目的来看&#xff1a; -创建型&#xff08;Creational&#xff09;模式&#xff1a;负责对象创建 -结构型&#xff08;Structural&#xff09;模式&#xff1a;处理类与对象间的组合 -行为型&#xff08;Behavioral&#xff09;模式&#xff1a;类与对象交互中的职责…

引入struts html标签,【学习】Struts标签之html标签

html:multiboxhtml:multibox标签生成多个checkbox。当您要使用大量的checkbox时使用这个标签非常方便&#xff0c;可以使您避免在ActionForm中声明大量的boolean类型的变量&#xff0c;带之以一个数组就行了。注意:为了正确的处理没有选中的checkbox您必须在reset()中设置数组的…

10个利用Eclipse调试Java的常见技巧

http://www.open-open.com/news/view/1ad9099 阅读目录 1. Conditional Breakpoint2. Exception Breakpoint3. Watch Point4. Evaluation (Display or Inspect or Watch)5. Change Variable Values6. Stop in Main7. Environment Variables8. Drop to Frame9. Step Filter10. S…

操作系统上机作业--创建N个线程(多线程)

ring.c: 创建N个线程&#xff0c;它们构成一个环 • 创建N个线程&#xff1a;T1、T2、T3、… TN • T1向T2发送整数1 • T2收到后将整数加1 • T2向T3发送整数2 • T3收到后将整数加1 • T3向T4发送整数3 • … • TN收到后将整数加1 • TN向T1发送整数N 实…

管理者不应该做的事

1.责备让每个人明白出错的时候要承担责任&#xff0c;而不是责任他&#xff0c;出问题要帮他认识问题&#xff0c;并且给他提供解决办法&#xff0c;先了解来龙去脉&#xff0c;看看是哪里出了问题&#xff0c;是否能避免 2.印象没有人会因为你的服装、你的车、你的财产、你的头…

台式计算机网线,台式电脑如何连接宽带_台式电脑如何连接网线

2017-03-11 21:36:28电脑直接拨号上网(有宽带账号和密码)或者自动获取IP(有帐号没密码)上方式设置见图2016-12-10 13:29:30右击网上邻居&#xff0c;点属性&#xff0c;创建一个新的连接&#xff0c;按照下一步下一步的步骤就可以了&#xff0c;然后成功之后输入你的宽带号码和…

栈的应用--汉诺塔

#include<stdio.h>void move(char x,int n,char y){printf("%d号盘 %c柱 ---> %c柱\n",n,x,y); }void hanoi(int n,char x,char y,char z){if(n1){move(x,1,z);}else{hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);} }int main(){int n;char xX;char yY;c…

Linux split命令实例

曾经是否想要把一个大文件分割成多个小文件&#xff1f;比如一个5gb日志文件&#xff0c;我们需要把它分成多个小文件&#xff0c;这样我们才有可能使用普通的文本编辑器读取它。有时我们需要传输20gb的大文件到另一台服务器&#xff0c;这就需要我们把它分割成多个文件&#x…