![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
常见排序算法
狂奔的犀牛
just do it
展开
-
选择排序
int swap(int arr[], int index1, int index2){ int temp = arr[index1]; int arr[index1] = arr[index2]; arr[index2] = temp;}//O(n^2)void selectSort(int arr[], int length){ for (int i = 0; i < length; i++) { for (int j = i.原创 2020-05-08 23:18:30 · 97 阅读 · 0 评论 -
冒泡排序
冒泡排序,比较相邻元素大小。int swap(int arr[], int index1, int index2){ int temp = arr[index1]; int arr[index1] = arr[index2]; arr[index2] = temp;}//时间复杂度为 O(n^2)void bubbleSort(int arr[], int length){ for (int i = 0; i < length; i++) {原创 2020-05-08 23:14:21 · 90 阅读 · 0 评论 -
堆排序
堆堆是一种数据结构,具有两个特点:(1)完全二叉树(2)父节点的值 > 子节点的值完全二叉树完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。普通的完全二叉树,如果父、子节点的值大小没有顺序,那么可以通过 heapify 操作(交换父、子节点的值,...原创 2020-05-08 22:53:56 · 63 阅读 · 0 评论