本文主要是介绍【面试】通用面试题答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
冒泡
外层循环 n-1;内层循环 n-1-i;两两比较做互换;
Console.WriteLine("请输入一组数字:");string str = Console.ReadLine();string[] num = str.Split(','); // 获取到每个数int[] numlist=new int[num.Length];for (int i = 0; i < num.Length; i++){numlist[i] = int.Parse(num[i]); // 将每个数存储到numlist数组中}for (int i = 0; i < numlist.Length-1; i++){for (int j = 0; j < numlist.Length-1-i; j++){if (numlist[j]<numlist[j+1]) //此数小于后一个数,两个数交换,从大到小排列{int temp = numlist[j];numlist[j] = numlist[j + 1];numlist[j + 1] = temp;}}}Console.WriteLine("排序结果为:");for (int i = 0; i < numlist.Length; i++){Console.Write(numlist[i]+",");}Console.ReadLine();
单例
/// <summary>/// 单例模式的实现/// </summary>public class Singleton{// 定义一个静态变量来保存类的实例private static Singleton uniqueInstance;// 定义私有构造函数,使外界不能创建该类实例private Singleton(){}/// <summary>/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点/// </summary>/// <returns></returns>public static Singleton GetInstance(){// 如果类的实例不存在则创建,否则直接返回if (uniqueInstance == null){uniqueInstance = new Singleton();}return uniqueInstance;}}
数据分页
mysql:limit 10,20
ms sql:offset fetch next 5 row only
oracle:rownum<=3
code:List.Skip().Take()
求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
static int F1(int m) { int sum =0; bool flag =true; for (int i = 1; i <= m; i++) { if (flag) //一次是默认是True,下下也为True sum += i; else sum -= i; flag = !flag; } return sum; } //方法二,通过奇偶性 static int F2(int m) { int sum = 0; for (int i = 1; i <= m; i++) { if (i % 2 >0) //即为奇数 sum += i; else sum -= i; } return sum; }
有一个字符串 “I am a good man”,设计一个函数,返回 “man good a am I”。
static string Reverse() { string s = "I am a good man"; string[] arr = s.Split(' '); string res = ""; for (int i = arr.Length - 1; i >= 0; i--) { res += arr[i]; if (i > 0) res += " "; } return res; }
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
class Program { static void Main(string[] args) { //有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? //分解题目 //条件:四个数字1、2、3、4 ;三位数:百位、十位、个位 //要求:互不相同;无重复数字:每个数字在三位中只出现一次 //结果:多少个? 都是多少? int count = 0; //统计个数 for (int bw = 1; bw <= 4; bw++) { for (int sw = 1; sw <= 4; sw++) { if (sw!= bw) //很显然,只有百位和十位不同的情况下才能谈个位。 { for (int gw = 1; gw <= 4; gw++) { if (gw != sw && gw != bw) //百位用过的,十位就不能用;百位和十位都用过的,个位就不能用 { count++; Console.WriteLine("{0}{1}{2}", bw, sw, gw); } } } } } Console.WriteLine("一共有{0}个", count); Console.Read(); } }
选择排序
首先在未排序列中找到最小的元素,存放到排序序列的起始位置。然后,在从剩余未排序元素中继续寻找最小的元素,放到排序序列末尾。以此类推,直到所有元素均排序完毕。
using System;
using System.Collections.Generic;
using System.Linq;using System.Text;
namespace //选择排序
{//选择排序与冒泡排序比较的次数是一样的//选择排序的交换次数要比冒泡排序的交换次数少class Program{static void Main(string[] args){int[] arr = { 15, 0, 10, 50, 55, 35, 15, 20 }; //待排序数组SelectSort(arr); //调用选择排序函数 }private static void SelectSort(int[] arr){ int temp = 0;for (int i = 0; i < arr.Length - 1; i++){int minVal = arr[i]; //假设 i 下标就是最小的数int minIndex = i; //记录我认为最小的数的下标for (int j = i + 1; j < arr.Length; j++) //这里只是找出这一趟最小的数值并记录下它的下标 {//说明我们认为的最小值,不是最小if (minVal > arr[j]) //这里大于号是升序(大于是找出最小值) 小于是降序(小于是找出最大值) {minVal = arr[j]; //更新这趟最小(或最大)的值 (上面要拿这个数来跟后面的数继续做比较)minIndex = j; //记下它的下标 }}//最后把最小的数与第一的位置交换temp = arr[i]; //把第一个原先认为是最小值的数,临时保存起来arr[i] = arr[minIndex]; //把最终我们找到的最小值赋给这一趟的比较的第一个位置arr[minIndex] = temp; //把原先保存好临时数值放回这个数组的空地方, 保证数组的完整性 }//控制台输出foreach (int item in arr){Console.WriteLine("C#遍历:{0}", item);}}}
}
索引
什么是索引
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
使用索引
mysql 、sqlserver、oracle创建 查看 删除 索引
存储过程、视图、触发器
create proc cp_select_count(@name varchar(50),@pageint int,@pageSize int,@roccordRows int out
)
as
select top (@pageSize) * from books
where id not in(
select top (@pageSize*(@pageint-1)) id
from books where name like '%'+@name+'%'
order by id
)
and name like '%'+@name+'%' order by id
select @roccordRows=COUNT(*) from books where name like '%'+@name+'%'--调用
declare @rs int
exec cp_select_count'三国',1,5,@rs out
print '查询的记录数是:'+convert(varchar(50),@rs)
MySQL、Oracle、SQL server 获取存储过程、触发器SQL
这篇关于【面试】通用面试题答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!