随笔分类 - 【C#】八大排序算法
八种排序算法:
按照时间复杂度分为: 冒泡排序(o(n2)),选择排序(o(n2)),插入排序(o(n2)),堆排序(o(nlogn)),
归并排序(o(nlogn)),快速排序(o(nlogn)), 希尔排序(o(n1.25)),基数排序(o(n))
摘要:原理: 1、第一个元素可以看做是已经排序好的小数组,第二个元素和这个小数组比较,放到合适的位置,组成新的已排序的小组数。2、第三个元素在和前面组成的新的小数组比较,决定排在什么位置,如此循环,直到结束 public static void insertatesort() { int[] array
阅读全文
摘要:原理:快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。 步骤为:(1)从数列中挑出一个元素,称为 "基准"(pivot),(2)重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆放在基准的后面(相同的数
阅读全文
摘要:原理:选择排序是搜索整个数组,将找到的最小值与数组中第一位元素交换位置;然后在剩下的元素中找到最小值,将找到的最小值与数组中第二位元素交换位置,依此类推,直到将所有的元素排好顺序。 //选择排序,从小到大排列 public static void selectionsort (){ int[] ar
阅读全文
摘要:原理:从头开始,每一个元素和它的下一个元素比较,如果它大,就将它与比较的元素交换,否则不动。这意味着,大的元素总是在向后慢慢移动直到遇到比它更大的元素。所以每一轮交换完成都能将最大值冒到最后(原文出处:https://www.cnblogs.com/wangjiahong/p/3570465.htm
阅读全文

浙公网安备 33010602011771号