C#程序设计之常用数据结构与算法

Posted shangzh!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#程序设计之常用数据结构与算法相关的知识,希望对你有一定的参考价值。

C#程序设计之常用数据结构与算法

例题1

题目描述
输入一个字符串,统计其中有多少个单词。单词之间用空格分开。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ex7_1

    class Program
    
        static void Main(string[] args)
        
            string strInput = "I am happy! me too!";
            char[] separator =  ' ' ;
            string[] splitStrings = new string[100];
            splitStrings = strInput.Split(separator);
            int i = splitStrings.Length;
            Console.WriteLine("此字符串共有0个单词组成。", i);
            Console.ReadLine();
        
    


运行结果

例题2

题目描述
设定一个有大小字母的字符串,先将字符串的大写字母输出,再将字符串的小写字母输出。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ex7_2

    class Program
    
        static void Main(string[] args)
        
            string strInput = "AdbdeisiisiooiOOOPwWW";
            //判定是否含有大写字母            
            for (int i = 0; i < strInput.Length; i++)
            
                int AsciiCode = (short)(strInput[i]);
                if (AsciiCode >= 65 && AsciiCode <= 90)
                
                    Console.Write(strInput[i]);
                    

                
            
            //判定是否含有小写字母            
            for (int i = 0; i < strInput.Length; i++)
            
                int AsciiCode = (short)(strInput[i]);
                if (AsciiCode >= 97 && AsciiCode <= 122)
                
                    Console.Write(strInput[i]);
                
                
            
            Console.ReadLine();
        
        
        
    


运行结果

例题3

题目描述
设定一个有大小写字母的字符串和一个查询字符串,使用String类的IndexOf判断在该字符串中要查找的字符串出现的次数。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ex7_3

    class Program
    
        static void Main(string[] args)
        
            string strInput = "Welcome to! Welcome to! me too!";
            string strQuery = "to!";
            string strTemp;
            int nCount = 0;
            strTemp = strInput;
        //取子串的位置
        Start: int nSubstring = strTemp.IndexOf(strQuery);
            if (nSubstring >= 0)
            
                nCount++;
                strTemp = strTemp.Remove(nSubstring, strQuery.Length);
                goto Start;
            
            Console.WriteLine("to!" + "在" + "Welcome to! Welcome to! me too!" + "出现的次数为:0", nCount);
            Console.Read();
        
    


运行结果

例题4

题目描述
将一个5 X 3的二维数组转置输出。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ex7_6

    class Program
    
        static void Main(string[] args)
        
            int[,] OriginalArray =   1, 2, 3 ,  4, 5, 6 ,  7, 8, 9 , 
                                 10, 11, 12 ,  13, 14, 15  ;
            int[,] ReversionArray = new int[3, 5];
            for (int i = 0; i <= OriginalArray.GetUpperBound(0); i++)
            
                for (int j = 0; j <= OriginalArray.GetUpperBound(1); j++)
                
                    ReversionArray[j, i] = OriginalArray[i, j];
                
            
            Console.WriteLine("原始的数组为:");
            PrintArray(OriginalArray);
            Console.WriteLine("转置后的数组为:");
            PrintArray(ReversionArray);
            Console.ReadLine();
        
        public static void PrintArray(int[,] intArray)
        
            for (int i = 0; i <= intArray.GetUpperBound(0); i++)
            
                for (int j = 0; j <= intArray.GetUpperBound(1); j++)
                
                    Console.Write(intArray[i, j] + " ");
                
                Console.WriteLine();
            
        
    


运行结果

例题5

题目描述
输出10个数到一维数组中,分别实现数据的输入、排序及输出。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ex7_8

    class Program
    
        static int nCount = 10;
        static int[] nArray = new int[10];
        static void Main(string[] args)
        
            CreateArray();
            Console.WriteLine("原始的数组为:");
            PrintArray(nArray);
            //进行数组的排序
            Array.Sort(nArray);
            Console.WriteLine("排序后的数组为:");
            PrintArray(nArray);
            Console.ReadLine();
        
        public static void CreateArray()
        
            for (int i = 0; i < nCount; i++)
            
                Console.WriteLine("请输入数组的第0元素:", i + 1);
                int nTemp = Convert.ToInt32(Console.ReadLine());
                nArray[i] = nTemp;
            
        
        public static void PrintArray(int[] intArray)
        
            for (int i = 0; i <= intArray.GetUpperBound(0); i++)
            
                Console.Write(intArray[i] + " ");
            
            Console.WriteLine();
        
    


运行结果

CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

以上是关于C#程序设计之常用数据结构与算法的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法之深入解析常用的七大算法设计策略

数据结构与算法(C#)入门 --- 串和数组

数据结构与算法之深入解析“二指输入的的最小距离”的求解思路与算法示例

数据结构与算法之深入解析“原子的数量”的求解思路与算法示例

数据结构与算法分析之----各种常用排序详解

教练,我想学设计之禅