笔者埋坑后面再来分析总结 1. 插入排序 直接插入排序:O(n^2) 二分插入排序:O(n^2) 希尔排序:O(nlog n) 2. 交换排序 冒泡排序:O(n^2) 快速排序:O(nlog2 n) java public static void SimpleSelectSort(int[] arr ...
分类:
编程语言 时间:
2020-02-17 01:18:02
阅读次数:
88
只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。 ...
分类:
编程语言 时间:
2020-02-16 16:30:07
阅读次数:
77
学习自菜鸟教程,自己加以总结希望可以多多重复!!! 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 基数排序 1 //冒泡排序 O(n2) 2 public static void BubbleSort(int[] arr){ 3 int temp; 4 for(int i=0; ...
分类:
编程语言 时间:
2020-02-12 14:53:26
阅读次数:
78
字符串本质就是字符数组,所以对字符串的排序也就是对字符数组的排序(有选择排序、冒泡排序、快速排序等常用算法); 思路: 字符串转换成字符数组 数组排序 用的冒泡排序, 注意点: 1. 一层循环下来会将最小的元素转移到末尾,即最小的元素与其他元素都进行了一次比较,所以还需要外层循环控制交换次数(len ...
分类:
编程语言 时间:
2020-02-07 18:39:43
阅读次数:
117
10种排序算法的Java实现 分类 基于比较的排序算法 冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序,堆排序 非比较的排序算法 计数排序,桶排序,基数排序 稳定的排序算法 冒泡排序,插入排序,归并排序,计数排序,桶排序,计数排序 不稳定的排序算法 选择排序,希尔排序,快速排序,堆排序 ...
分类:
编程语言 时间:
2020-02-04 15:31:38
阅读次数:
69
1 #include <stdio.h> 2 3 #define ASC 0 //升序,从左到右,从小到大 4 #define DESC 1 //降序,从左到右,从大到小 5 #define TRUE 1 //布尔值,真 6 #define FALSE 0 //布尔值,假 7 8 typedef i ...
分类:
编程语言 时间:
2020-02-01 15:56:52
阅读次数:
89
堆排序 快速排序 代码与知识点均学习自AcWing:https://www.acwing.com/activity/ ...
分类:
编程语言 时间:
2020-02-01 12:32:23
阅读次数:
74
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。 步骤为: 挑选基准值:从数列中挑出一个元素,称为"基准"(pivot); 分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准 ...
分类:
编程语言 时间:
2020-01-31 14:02:49
阅读次数:
71
快速排序是冒泡排序的改进版,也是最好的一种内排序,还涉及到分治和递归 基本思路: 1先从数列中取出一个数作为基准数(简单起见可以取第一个数) 2分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边(分区) 3再对左边区间重复第一步和第二步,直到各区间只有一个数(递归) 举例: 对 ...
分类:
编程语言 时间:
2020-01-23 14:06:37
阅读次数:
118
快速排序(qsort) 本质是分治思想 排序的一次划分算法从两头交替搜索,直到low和high重合,因此其时间复杂度是O(n);而整个快速排序算法的时间复杂度与划分的趟数有关。 快速排序三个步骤 1、确定区域,左边界(l),右边界(r),基准值(x = l+r>>2) 2、保证区间内,x左侧的任意值 ...
分类:
编程语言 时间:
2020-01-22 21:44:38
阅读次数:
73