C#将字符串作为随机种子生产伪随机数
简单来讲就是先生成字符串的md5,然后再用md5的前几位转换为Int作为随机种子废话不多说直接贴代码:using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Text; namespace Kakkk { class Program { ...
简单来讲就是先生成字符串的md5,然后再用md5的前几位转换为Int作为随机种子废话不多说直接贴代码:using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Text; namespace Kakkk { class Program { ...
介绍归并排序是创建在归并操作上的一种有效的排序算法,效率为O(nlogn),1945年由冯·诺伊曼首次提出。归并排序算法主要依赖归并(Merge)操作。归并操作指的是将两个已经排序的序列合并成一个序列的操作。本文主要介绍递归法。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(nlogn)稳定性:稳定额外的空间:O(n)过程递归操作将待排序元素分为大致相同的两个子...
介绍快速排序是由东尼·霍尔所发展的一种排序算法,该算法采用了“分治思想”,同时快速排序由于排序效率在同为O(n*logn)的几种排序方法中效率较高,因此经常被采用。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(n^2)稳定性:不稳定(不稳定发生在基准元素flag与arr[index+1]交换时)额外的空间:O(logn)~O(n)过程从序列中将某一个元素(通常...
介绍插入排序是一种简单直观的排序算法,其工作原理类似于人们对扑克牌的排序。时间复杂度:最好情况:O(n)平均情况:O(n^2)最坏情况:O(n^2)稳定性:稳定额外的空间:O(1)过程将第一个元素认定为已经被排序从第二个元素开始,取出元素,将取出的元素由后向前与其前面的元素进行比较若取出元素小于该元素,则继续向前扫描,直到取出元素小于或等于该元素将取出元素插在该元素后面重复步骤2~4直至所有...
介绍选择排序和冒泡排序的算法其实都比较好理解,都是从大到小(从小到大)操作的排序,冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。时间复杂度:最好情况:O(n^2)平均情况:O(n^2)最坏情况:O(n^2)稳定性:不稳定额外的空间:O(...