
算法
文章平均质量分 62
算法
小倪同学 -_-
天道酬勤当至理,恒心定得上琼楼
展开
-
八大排序(详细分析+动图演示)
文章目录直接插入排序希尔排序直接选择排序直接插入排序动图演示:基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。代码实现:void InsertSort(int* a, int n){ for (int i = 0; i < n - 1; i++) { int end = i;// 记录有序数列的最后一个元素的下标 int tmp = a[end + 1];// 记录要插入的数据 whi原创 2021-09-24 17:41:43 · 812 阅读 · 0 评论 -
详解汉诺塔问题
文章目录什么是汉诺塔移动过程思路分析代码实现结果演示什么是汉诺塔汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。移动过程移动一个圆盘移动两个圆盘移动3个圆盘思路分析n=1时,直接将圆盘从A移到Cn>1时将A座上n-1个盘原创 2021-05-03 11:30:27 · 397 阅读 · 1 评论 -
详解二分查找
二分查找引言具体思路代码实现代码逐句分析运行结果演示分析与总结引言如何在一组递增数列中查找一个数,之前我们已经学习了顺序查找,就是按顺序一个个查找,但是当我们查找一个很大的数的时候,例如231(大约21亿)这时按顺序查找就会很繁琐,需要搜寻231次。有没有一种查找方式既快捷又简单呢?答案是有的,例如二分查找。二分查找又称折半查找,每一次查找都会排除一半的选项,这样大大减少了运算量。具体思路首先确定这组数据中间位置的数,把它和我们要找的数进行比较,如果相同那么这个数就找到了,如果不同就比较这两个数。若原创 2021-05-01 09:42:37 · 211 阅读 · 1 评论 -
冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。#include<stdio.h>void bubble_sort(int arr[], int sz)//形参arr本质是指针{ int i = 0; //确定趟数 for (i = 0; i < sz-1; i++) { //一趟冒泡排序的过程 int j = 0; for (原创 2021-04-25 15:12:18 · 104 阅读 · 0 评论