小白一天学一个算法系列,从逻辑、关键、算法动画、完整示例代码四个方面进行学习。
(注:冒泡排序示例代码有更详细的注解,共用代码后续算法示例代码中不再注释。)
逻辑:分而治之,最右边的数作为分割点,比分割点小的数放在一边,比分割数大的数放在另一边。
关键:构造递归函数,借助两个下标,一个下标记录存放位置,另一个标记出要存放的元素,从左到右比较。
静态交换过程:(静态更直观,动态的看得眼花)
完整示例代码:
#include#include #include #define N 10 #define SWAP(a,b) {int tmp;tmp=a;a=b;b=tmp;} //数组打印 void arr_print(int *arr) { int i; for(i=0;i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)