算法
_YKitty
这个作者很懒,什么都没留下…
展开
-
数据结构| |选择排序
选择排序基本思想:在待排序序列中选择最小的记录,然后将这个数据元素与第一个记录交换,第一个记录到位,这是第一趟排序,然后进行第二趟排序,以此类推,进行n-1趟,序列就排序完成了,接下来看看代码。代码如下:void Swap(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}void select_sort(int arr[], int...原创 2018-06-23 16:59:39 · 130 阅读 · 0 评论 -
数据结构| |直接插入排序
直接插入排序思想:对于一个给定数组,将数组的第一个元素当做已经排好序的序列,然后每次讲数组元素的一个元素插入到该有序序列中,直到插完思想:对于一个数组,先将第一个元素当做有序的序列,然后依次将后面的元素插入到这个序列中。方法:每次用前一个数和要放入的元素进行比较,如果大于的话就将其向后移动,最后找到要插入的位置,在进行插入。代码如下;void insert_sort(int ar...原创 2018-06-23 21:37:17 · 166 阅读 · 0 评论 -
数据结构| |希尔排序
希尔排序思想:又称“缩小增量排序”,先将整个待排记录序列分割成为若干个子序列,对每个子序列分别直接插入排序,待整个序列记录“基本有序”时,再对全体记录进行一次直接插入排序。代码如下:void shell_sort(int arr[], int sz){ //自己定义一个增量数组 int add[MAX] = { 0 }; int sz_d = 0; int ret = sz; whil...原创 2018-06-24 21:29:45 · 121 阅读 · 0 评论 -
数据结构| |冒泡排序
冒泡排序:也叫作起泡排序对于n个数据,进行n-1次冒泡,每一次冒泡将最大的或者最小的放到序列的第n个,然后在进行下一次冒泡,下次冒泡将前n-1个数据的最小的,放到n-1的位置上,一次冒泡,知道n-1结束,那么该序列也就有有序了。代码如下:1.基础版(没有进行任何优化)void bubble_sort(int arr[], int sz){ int i = 0; int j = 0; for...原创 2018-06-24 22:00:27 · 489 阅读 · 0 评论 -
数据结构| |快速排序
代码如下:void quick_sort(int arr[], int left, int right){ //保存枢轴 int head = left; int tail = right; int pivotkey = arr[left]; if (left < right) { while (left != right) { while (left < ...原创 2018-06-26 06:54:15 · 198 阅读 · 0 评论