![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
a_clear_chen
目前是个程序小菜鸡,专注unity与c#
展开
-
快速排序
单元排序(一次快速排序):key=array[0],low=0,high=array.length-1;若array[high]<key,则把array[high]移到key的左边,即array[low]=array[high],同理,若array[low]>key,则把array[low]移到key的右边,即array[high]=array[low],直到low>=high,...原创 2018-04-30 19:09:41 · 85 阅读 · 0 评论 -
选择排序
思路:每次把未排序序列中最小的数放在最前面,直到未排序序列为空,即,每次把最小的数找出来。时间复杂度:O(n^2)。代码如下:static void Main(string[] args) { int[] array = { 3, 45, 26, 18, 24, 37, 89, 6 }; Sort(array); ...原创 2018-04-30 20:02:52 · 103 阅读 · 0 评论 -
插入排序
思路:每次都与前面的一个数比,若更小,则将两数的位置交换,直到前面的数比它小。依次循环,直到最后一个数排好。时间复杂度:O(n^2)。代码如下:static void Main(string[] args) { int[] array = { 36, 2, 15, 48, 26, 73, 14, 55 }; InsertSort(ar...原创 2018-04-30 22:04:32 · 65 阅读 · 0 评论 -
希尔排序
思路:首先选取一个增量d(类似等差数列的公差),一般先设为array.Length/2,将数组中距离为d的数据分到同一个组中,由此分为多个组,在每组进行直接插入排序;然后d递减,再分为多个组,再在每组进行直接插入排序,直到d=1。希尔排序相对于插入排序的优点在于:每次比较的数的距离更大,比较之后移动的距离更大,减少了复制的次数,而且由于最后d=1,此时相当于对整个数组进行插入排序,所以排序结果一定...原创 2018-05-03 11:42:26 · 82 阅读 · 0 评论 -
冒泡排序
思路:排序后的数组从小到大排列,每次相邻的两个数比较,把更大的数后移,每次都会得出未排序部分中最大的数。语句的总执行次数为a1=n,d=1的等差数列的和,所以时间复杂度为:O(n^2)。代码如下:public static int[] BubbleSort(int[] nums) { for(int i=0;i<nums.Length-1;i++) ...原创 2018-04-28 19:52:10 · 93 阅读 · 0 评论