常见编程题
来源:互联网 发布:手机看书软件 编辑:程序博客网 时间:2024/05/22 04:24
(一)冒泡排序:
该算法需要内外循环两次,外循环是控制整体的排序次数,外排次数=数组长度-1,内排序控制每次的排序比较。
冒泡即因为每次排序的开始都是从数组的最后一位依次跟前一位比,就像气泡从水底冒出来一样,故称之为冒泡排序。
以下代码仅供学习。
using System; namespace lesson01{ class MainClass { static void Main(string[] args){int temp;int[] array = new int[10]{11,45,1,38,84,55,36,13,66,41};for (int i = 0; i < array.Length; i++) {for (int j = i + 1; j < array.Length ; j++){if (array[j] < array[i]){temp = array[j];array[j] = array[i];array[i] = temp;}}}for (int j = 0; j < array.Length; j++){Console.Write("{0}"+" ",array[j]);}Console.ReadLine();} }}输出:
(二)递归——在方法内部调用方法本身
1、递归必须有结束条件;
2、将复杂的问题分解为类似的小问题,要求小问题和原问题是一致的,且更加简单;
3、递归是一种算法。
案例一:
using System; namespace lesson01{ public class Math { public int F (int n) { //结束条件 if (n >1) { //进行递归 return F (n-1) + n; } else { return 1; } } } class MainClass { //计算1+2+...+100的值; //易知f (n) = f (n-1) +1 , (n>1) //f (n) = 1 , (n=1) public static void Main ( string[] args ) { Math m = new Math () ; Console.WriteLine (m.F(100)) ; } } }
using System; namespace lesson01{ public class Math{ public int F(int m){ //结束条件if (m == 1 || m == 2) { //进行递归return 1;} else {return F (m - 1) + F (m - 2);} }}class MainClass{ //计算斐波那契数列 //f(n)=f(n-1)+f(n+2),n>1 //f(n)=1,(n+1) public static void Main (string[] arqs){Math m=new Math();Console.WriteLine(m.F(30)); } }}
循环求解
using System; namespace lesson01{ class Program{ public static void Main() { number(100); //计算1-2+3-4+...+N的值,括号内为N的值.Console.ReadLine(); }public static void number(int max) { int result = 0; for (int i = 1; i <= max; i++) { if (i % 2 != 0) { result += i; } else { result -= i; } } Console.WriteLine( result); }}}
哈希表应用:
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。
注意事项:你可以假设只有一组答案。样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].
选择排序,冒泡排序,快速排序,插入排序,希尔排序,归并排序
阅读全文
0 0
- 常见编程题
- 常见编程题
- 字符串常见编程题
- 常见编程题
- 常见笔试编程题
- 常见编程题
- 常见面试编程题
- 常见编程题
- 常见java笔试-编程题
- 几个常见JAVA编程题
- C语言常见编程题【索引】
- C/C++常见的编程题
- JAVA面试常见编程题总结
- 面试常见编程题专题一:链表
- java面试之常见编程题
- 面试常见的Js编程题
- 2.前端常见面试编程题整理
- 0817 Java面试之常见编程题
- 683. K Empty Slots
- 【Java】:浮点型
- Longest Palindrome
- codeforces 836D(思维题)
- Visual Studio软件安装破解推荐网站
- 常见编程题
- Final、Static用法总结
- flask学习笔记
- 1785 数据流的算法(模拟)
- 最新csdn有奖任务答案
- Verilog中inout端口的使用方法
- 数据库基础笔记
- Equals方法重写
- 对于一代经典《剑指offer》的书评