青少年编程知识记录 codecoming

【DFS】搜索回溯基础

0.前言       搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。如迷宫问题:进入迷宫后,先随意选择一个前进方向,一步步向前试探前进,如果碰到死胡同,说明前进
作者:亿万年的星光 分类:算法 浏览:

【排序】----插入排序

1.基本思想在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。2.过程·(1)从第一个元素开始,该元素可以认为已经被排序;·(2)取出下一个元素,在已经排序的元素序列中从后向前扫描;·(3)如果该元素(已排序)大于新元素,将该元素移到下一位置;·(4)重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;·(5)将新元素插入到该位置后;·(6)重复步骤2~5。动图演示:3.参考代码#include&
作者:亿万年的星光 分类:算法 浏览:

【排序】----选择排序

1.基本思想每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在待排序的数列最前,直到全部待排序的数据排完。2.过程首先初始化最小元素索引值为首元素。依次遍历待排序数列,遇到小于该最小索引位置处的元素则刷新最小索引为该较小元素的位置。直至遇到尾元素,结束一次遍历,并将最小索引处元素与首元素交换。·初始化最小索引值为第二个待排序数列元素位置,同样的操作,可得到数列第二个元素即为次小元素;以此类推。着重在于“选”动图演示:#include<iostream>using nam
作者:亿万年的星光 分类:算法 浏览:

【排序】----冒泡排序

1.基本思想两个数比较大小,较大的数下沉,较小的数冒起来。2.过程·每次比较相邻的两个数,如果第二个数小,就交换位置。(升序或降序)·然后两两比较,一直到比较最后的数据。最终最小(大)数被交换到开始(结束)位置,这样第一个最小(大)数的位置就排好了。·继续重复上述过程,依次将第2,3…n-1个最小数排好位置。动图过程:举例说明:【1 4 3 2】第一趟排序:第一次排序:1和4比较,1小于4,不交换位置。 【1 4 3 2】第二次排序:4和3比较,4大于3,交换位置。 【1 3 4 2】第三次排序
作者:亿万年的星光 分类:算法 浏览: