
数据结构
Annaisavailable
这个作者很懒,什么都没留下…
展开
-
数据结构|排序|快速排序
快速排序 快速排序主要要理解他里面关于基准的概念。 pivot从左向右走,每次都把所指的位置的正确位置找到。 void QuickSort(int arr[],int low,int high) { if(low>=high)return; //停止条件:说明已经排完了 int pivot=qsort(arr,low,high); QuickSort(arr,low,pivot-1); QuickSort(arr,pivor+1,high); } int qsort(int arr[],i原创 2021-05-21 12:07:48 · 136 阅读 · 0 评论 -
排序算法|数据结构|堆排序
堆排序(大根堆) 初始化过程 按照数组下标的规律,先建立一个初始堆。 这个初始堆只需要将整个堆中所有元素的最大值放在堆顶 (这就是Adjust函数要做的,就是把所有元素中最大的那一个放在堆顶); 遍历的主过程 之后依次,从堆的最后一个元素开始,与堆顶元素交换。之后对剩余的元素再次进行Adjust。 这样的效果是,每次Adjust之后,堆的最后一个元素都是所有数据中最大的。 (注意Adjust中传入的总元素个数每次都减一,保证堆的最后一个元素每次都往前移动一位。) 这样的操作从后往前除了第一个结点都要做一遍。原创 2021-05-21 11:46:59 · 126 阅读 · 0 评论