标签:
数组的应用:
(一).冒泡排序。
1.冒泡排序是用双层循环解决。外层循环的是趟数,里层循环的是次数。 2.趟数=n-1;次数=n-趟数。 3.里层循环使用if比较相临的两个数的大小,进行数值交换。
作业: 1.先把冒泡排序写一遍。 2.使用冒泡排序,做青歌赛的打分程序。要求去掉两个最高,两个最低分,求平均得分。
代码。
(二).折半查找。
前提:数组必须是有序的。 思路:用两个变量分别代表上限(top)和下限(bottom)的下标,再用一个变量代表中间(mid)的下标。 1.求中间下标:mid = (top+bottom)/2 2.上限下标下移:top = mid+1. 假设数组是升序排列。 3.下限下标上移:bottom = mid-1; 4.循环条件是:bottom>=top static void Main(string[] args) { int[] a = new int[] { 3, 5, 7, 9, 11, 13, 14, 18 };
Console.Write("请输入要找的数:"); int find = Convert.ToInt32(Console.ReadLine());
int top, bottom, mid; //上限下标,下限下标,中间下标 top = 0; bottom = a.Length - 1;
while(bottom>=top) //只要下限下标还在上限下标的下面,就循环,否则没找到就结束。 { //算中间下标 mid = (top + bottom) / 2; //取中间的值 int n = a[mid]; if(n < find) { top = mid + 1; //调整上限的下标 } else if(n>find) { bottom = mid - 1;// 调整下限的下标。 } else { Console.WriteLine("找到了,在第" + mid + "个元素上"); break; } } }
二维数组: 表格的模型。 定义: 数据类型[,] 数组名 = new 数组类型[维度长度,维度长度]; int[,] a = new int[3,4]; int[,] a = new int[3, 4] { { 1, 2, 3, 4 },{ 5, 6, 7, 8 }, { 9, 0, 9, 8 } }; 赋值: 数组名[下标,下标] = 值; a[0,0] = 5; a[2,3] = 10; 取值: 数组名[下标,下标]; 应用:
标签:
原文地址:http://www.cnblogs.com/dawasai/p/4189828.html