在本文章开始之前给大家介绍个网站,可以通过下面动画网址来理解 ,(国外的网站帮助学习数据结构很多知识,可以翻译下来,在搜索框搜索相应的排序算法进行动画演示,非常好用。)https://www.cs.usfca.edu/~galles/visualization/https://www.cs.usfca.edu/~galles/visualization/ 动画使用方法是,先点play,然后及时点击pause,自己通过Step Forward来查看。
作者QQ:2529702031 备注CSDN 可以问不会的问题,解答疑惑
目录
冒泡排序
快速排序
插入排序
选择排序
堆排序
归并排序
所有排序算法时间与空间复杂度汇总:
冒泡排序
冒泡排序的基本思想是:从后往前(或从前往后)两两比较相邻元素的值,(若A[j-1]>A[j]),则交换它们,直到序列比较完。我们称它为第一趟冒泡,结果是将最小的元素交换到待排序列的第一个位置。关键字最小的元素如气泡一般逐渐往上“漂浮”直至“水面”。下一趟冒泡时, 前一趟确定的最小元素不再参与比较,每趟冒泡的结果是把序列中的最小元素放到了序列的最终位置……这样最多做n - 1趟冒泡就能把所有元素排好序。https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html给大家已经找好了,直接点击就可看排序算法动画演示。
(用的是王道的资料,王道还是比较权威的)
代码如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef int ElemType;
typedef struct{ElemType *elem;//存储元素的起始地址int TableLen;//元素个数
}SSTable;
void ST_Init(SSTable &ST,int len)
{ST.TableLen=len;ST.elem=(ElemType*)malloc(sizeof (ElemType)*ST.TableLen);//申