【Fastadmin】一个完整的轮播图功能示例

目录

1.效果展示:

列表

添加及编辑页面同

2.建表:

3.使用crud一键生成并创建控制器

4.html页面

add.html

edit.html

index.php

5.js页面

6.小知识点


1.效果展示:


  • 列表

  • 添加及编辑页面同

2.建表:


  表名:fa_xxfb_banner

/*Navicat Premium Data TransferSource Server         : rootSource Server Type    : MySQLSource Server Version : 50726Source Host           : localhost:3306Source Schema         : xxxTarget Server Type    : MySQLTarget Server Version : 50726File Encoding         : 65001Date: 08/12/2023 17:52:34
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for fa_xxfb_banner
-- ----------------------------
DROP TABLE IF EXISTS `fa_xxfb_banner`;
CREATE TABLE `fa_xxfb_banner`  (`id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',`title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '换灯标题',`image` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '换灯图片',`site` enum('1','2') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '位置:1=首页,2=任务大厅',`jump_type_list` enum('0','1','2','3') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转方式:0=不跳转,1=内链,2=外链,3=自定义内容',`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '自定义内容',`switch` tinyint(5) NULL DEFAULT 1 COMMENT '开关:0=关,1=开',`weigh` int(16) NULL DEFAULT NULL COMMENT '权重',`createtime` bigint(16) NULL DEFAULT NULL COMMENT '创建时间',`jump_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转链接',PRIMARY KEY (`id`) USING BTREE,INDEX `site_switch`(`site`, `switch`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '轮播图' ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

3.使用crud一键生成并创建控制器


4.html页面


  • add.html
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Site')}:</label><div class="col-xs-12 col-sm-8"><select  id="c-site" data-rule="required" class="form-control selectpicker" name="row[site]">{foreach name="siteList" item="vo"}<option value="{$key}" {in name="key" value="1"}selected{/in}>{$vo}</option>{/foreach}</select></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label><div class="col-xs-12 col-sm-8"><input id="c-title" class="form-control" name="row[title]" type="text" data-rule="required"></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label><div class="col-xs-12 col-sm-8"><div class="input-group"><input id="c-image" class="form-control" size="50" name="row[image]" type="text" data-rule="required"><div class="input-group-addon no-border no-padding"><span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span><span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span></div><span class="msg-box n-right" for="c-image"></span></div><ul class="row list-inline faupload-preview" id="p-image"></ul></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Jump_type_list')}:</label><div class="col-xs-12 col-sm-8"><select  id="c-jump_type_list" class="form-control selectpicker" name="row[jump_type_list]">{foreach name="jumpTypeListList" item="vo"}<option value="{$key}" {in name="key" value=""}selected{/in}>{$vo}</option>{/foreach}</select></div></div><div class="form-group" id="content_show_hide"><label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label><div class="col-xs-12 col-sm-8"><textarea id="c-content" class="form-control editor" rows="5" name="row[content]" cols="50" data-rule=""></textarea></div></div><div class="form-group" id="jump_url_show_hide"><label class="control-label col-xs-12 col-sm-2">{:__('Jump_url')}:</label><div class="col-xs-12 col-sm-8"><input id="c-jump_url" class="form-control" name="row[jump_url]" type="text" data-rule=""></div></div><div class="form-group layer-footer"><label class="control-label col-xs-12 col-sm-2"></label><div class="col-xs-12 col-sm-8"><button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button><button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button></div></div>
</form>
  • edit.html
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Site')}:</label><div class="col-xs-12 col-sm-8"><select  id="c-site" data-rule="required" class="form-control selectpicker" name="row[site]">{foreach name="siteList" item="vo"}<option value="{$key}" {in name="key" value="$row.site"}selected{/in}>{$vo}</option>{/foreach}</select></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label><div class="col-xs-12 col-sm-8"><input id="c-title" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}" data-rule="required"></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label><div class="col-xs-12 col-sm-8"><div class="input-group"><input id="c-image" class="form-control" size="50" name="row[image]" type="text" value="{$row.image|htmlentities}" data-rule="required"><div class="input-group-addon no-border no-padding"><span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span><span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span></div><span class="msg-box n-right" for="c-image"></span></div><ul class="row list-inline faupload-preview" id="p-image"></ul></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Jump_type_list')}:</label><div class="col-xs-12 col-sm-8"><select  id="c-jump_type_list" class="form-control selectpicker" name="row[jump_type_list]">{foreach name="jumpTypeListList" item="vo"}<option value="{$key}" {in name="key" value="$row.jump_type_list"}selected{/in}>{$vo}</option>{/foreach}</select></div></div><div class="form-group" id="content_show_hide"><label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label><div class="col-xs-12 col-sm-8"><textarea id="c-content" class="form-control editor" rows="5" name="row[content]" cols="50">{$row.content|htmlentities}</textarea></div></div><div class="form-group" id="jump_url_show_hide"><label class="control-label col-xs-12 col-sm-2">{:__('Jump_url')}:</label><div class="col-xs-12 col-sm-8"><input id="c-jump_url" class="form-control" name="row[jump_url]" type="text" value="{$row.jump_url|htmlentities}"></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Switch')}:</label><div class="col-xs-12 col-sm-8"><select  id="c-switch" class="form-control selectpicker" name="row[switch]">{foreach name="switchList" item="vo"}<option value="{$key}" {in name="key" value="$row.switch"}selected{/in}>{$vo}</option>{/foreach}</select></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label><div class="col-xs-12 col-sm-8"><input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}"></div></div><div class="form-group layer-footer"><label class="control-label col-xs-12 col-sm-2"></label><div class="col-xs-12 col-sm-8"><button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button><button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button></div></div>
</form>
  • index.php
<div class="panel panel-default panel-intro"><div class="panel-heading">{:build_heading(null,FALSE)}<ul class="nav nav-tabs"><li class="active"><a href="#all" data-toggle="tab">{:__('All')}</a></li>{foreach name="siteList" item="vo"}<li><a href="#{$key}" data-toggle="tab">{$vo}</a></li>{/foreach}</ul></div><div class="panel-body"><div id="myTabContent" class="tab-content"><div class="tab-pane fade active in" id="one"><div class="widget-body no-padding"><div id="toolbar" class="toolbar"><a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a><a href="javascript:;" class="btn btn-success btn-add {:$auth->check('xxfb/banner/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a><a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('xxfb/banner/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a><a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('xxfb/banner/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a><div class="dropdown btn-group {:$auth->check('xxfb/banner/multi')?'':'hide'}"><a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a><ul class="dropdown-menu text-left" role="menu"><li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="switch=1"><i class="fa fa-eye"></i> 开</a></li><li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="switch=0"><i class="fa fa-eye-slash"></i> 关</a></li></ul></div></div><table id="table" class="table table-striped table-bordered table-hover table-nowrap"data-operate-edit="{:$auth->check('xxfb/banner/edit')}"data-operate-del="{:$auth->check('xxfb/banner/del')}"width="100%"></table></div></div></div></div>
</div>

5.js页面


define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {var Controller = {index: function () {// 初始化表格参数配置Table.api.init({extend: {index_url: 'xxfb/banner/index' + location.search,add_url: 'xxfb/banner/add',edit_url: 'xxfb/banner/edit',del_url: 'xxfb/banner/del',multi_url: 'xxfb/banner/multi',import_url: 'xxfb/banner/import',table: 'xxfb_banner',}});var table = $("#table");// 初始化表格table.bootstrapTable({url: $.fn.bootstrapTable.defaults.extend.index_url,pk: 'id',sortName: 'weigh',fixedColumns: true,fixedRightNumber: 1,columns: [[{checkbox: true},{field: 'id', title: __('Id')},{field: 'site', title: __('Site'), searchList: {"1":__('Site 1'),"2":__('Site 2')}, formatter: Table.api.formatter.normal},{field: 'title', title: __('Title'), operate: 'LIKE'},{field: 'image', title: __('Image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},{field: 'jump_type_list', title: __('Jump_type_list'), searchList: {"0":__('Jump_type_list 0'),"1":__('Jump_type_list 1'),"2":__('Jump_type_list 2'),"3":__('Jump_type_list 3')}, formatter: Table.api.formatter.normal},{field: 'switch', title: __('Switch'), searchList: {"0":__('Switch 0'),"1":__('Switch 1')}, table: table, formatter: Table.api.formatter.toggle},{field: 'weigh', title: __('Weigh'), operate: false},{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}]]});// 为表格绑定事件Table.api.bindevent(table);//绑定TAB事件$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {var typeStr = $(this).attr("href").replace('#', '');var options = table.bootstrapTable('getOptions');options.pageNumber = 1;options.queryParams = function (params) {params.type = typeStr;return params;};table.bootstrapTable('refresh', {});return false;});},add: function () {$("#content_show_hide").hide();$("#jump_url_show_hide").hide();onChange();Controller.api.bindevent();},edit: function () {var jump_type = $("#c-jump_type_list").val();show_hide(jump_type);onChange();Controller.api.bindevent();},api: {bindevent: function () {Form.api.bindevent($("form[role=form]"));}}};return Controller;
});
function onChange(){$('#c-jump_type_list').on('change',function(){var jump_type = $(this).val();show_hide(jump_type);});
}
function show_hide(jump_type){var fruits = ['1', '2'];if(fruits.includes(jump_type)){$("#jump_url_show_hide").show();$("#content_show_hide").hide();$('#c-jump_url').attr('data-rule', 'required');}else if(jump_type == 3){$("#content_show_hide").show();$("#jump_url_show_hide").hide();$('#c-content').attr('data-rule', 'required');}else if(jump_type == 0){$("#content_show_hide").hide();$("#jump_url_show_hide").hide();}
}

6.controller控制器


<?phpnamespace app\admin\controller\xxfb;use app\common\controller\Backend;/*** 轮播图** @icon fa fa-circle-o*/
class Banner extends Backend
{/*** Banner模型对象* @var \app\admin\model\xxfb\Banner*/protected $model = null;protected $searchFields = 'title';public function _initialize(){parent::_initialize();$this->model = new \app\admin\model\xxfb\Banner;$this->view->assign("siteList", $this->model->getSiteList());$this->view->assign("jumpTypeListList", $this->model->getJumpTypeListList());$this->view->assign("switchList", $this->model->getSwitchList());}/*** 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改*//*** 查看*/public function index(){//当前是否为关联查询$this->relationSearch = true;//设置过滤方法$this->request->filter(['strip_tags', 'trim']);if ($this->request->isAjax()) {//如果发送的来源是Selectpage,则转发到Selectpageif ($this->request->request('keyField')) {return $this->selectpage();}$type = $this->request->request("type");list($where, $sort, $order, $offset, $limit) = $this->buildparams();if ($type == "all" || $type == null) {$wheretype = '';} else {$wheretype['site'] = $type;}$list = $this->model->where($where)->where($wheretype)->order($sort, $order)->paginate($limit);$result = array("total" => $list->total(), "rows" => $list->items());return json($result);}return $this->view->fetch();}
}

7. model模型


<?phpnamespace app\admin\model\xxfb;use think\Cache;
use think\Model;class Banner extends Model
{// 表名protected $name = 'xxfb_banner';// 自动写入时间戳字段protected $autoWriteTimestamp = 'integer';// 定义时间戳字段名protected $createTime = 'createtime';protected $updateTime = false;protected $deleteTime = false;public static $fields = ['id', 'title', 'image', 'content' ,'jump_url', 'jump_type_list'];// 追加属性protected $append = [
//        'site_text',
//        'jump_type_list_text',
//        'switch_text'];protected static function init(){self::afterInsert(function ($row) {$pk = $row->getPk();$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);});self::afterWrite(function ($row) {Cache::rm('banner_list');});}public static function list($site){return self::where(['site' => $site, 'switch' => 1])->field(self::$fields)->order('weigh desc,id desc')->limit(10)->select();}public function getSiteList(){return ['1' => __('Site 1'), '2' => __('Site 2')];}public function getJumpTypeListList(){return ['0' => __('Jump_type_list 0'), '1' => __('Jump_type_list 1'), '2' => __('Jump_type_list 2'), '3' => __('Jump_type_list 3')];}public function getSwitchList(){return ['0' => __('Switch 0'), '1' => __('Switch 1')];}public function getSiteTextAttr($value, $data){$value = $value ? $value : (isset($data['site']) ? $data['site'] : '');$list = $this->getSiteList();return isset($list[$value]) ? $list[$value] : '';}public function getJumpTypeListTextAttr($value, $data){$value = $value ? $value : (isset($data['jump_type_list']) ? $data['jump_type_list'] : '');$list = $this->getJumpTypeListList();return isset($list[$value]) ? $list[$value] : '';}public function getSwitchTextAttr($value, $data){$value = $value ? $value : (isset($data['switch']) ? $data['switch'] : '');$list = $this->getSwitchList();return isset($list[$value]) ? $list[$value] : '';}public function getImageAttr($value){return cdnurl($value, true);}}

代码完成,直接复制即可使用

8.小知识点


  1. 下拉框动态加载不同的input框
  2. 隐藏的input显示后增加必填属性
  3. 自定义tab选项卡

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式

一。tcp连接以及写数据&#xff08;登录&#xff09; 数据通信--》协议--》TCP 1.tcp连接 创建while循环&#xff0c;中间加入事件结构&#xff0c;创建tcp连接&#xff0c;写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外&#xff0c;需要用户名与密…

中通单号查询,中通快递物流查,备注需要的单号记录

批量查询中通快递单号的物流信息&#xff0c;并对需要的单号记录进行备注。 所需工具&#xff1a; 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&#xff0c…

快速幂(C语言)

前言 快速幂算法一般用于高次幂取模的题目中&#xff0c;比如求3的10000次方对7取模。这时候有些同学会说&#xff1a;这还不简单&#xff1f;我直接调用pow函数然后对结果%7不得了么&#xff1f;可是3的10000次方这么庞大的数字&#xff0c;真的能储存在计算机里么&#xff1f…

HTML行内元素与块级元素的区别(超详细)

目录 行内元素&#x1f338;常见的行内元素&#x1f338;行内元素&#xff08;内联元素&#xff09;的特性 块级元素&#x1f338;常见的块级元素&#x1f338;块级元素的特性 相互转换(display)&#x1f338;行内块状元素的特性 行内元素 &#x1f338;常见的行内元素 <s…

c#学习相关系列之as和is的相关用法

一、子类和父类的关系 public class Program{static void Main(string[] args){Animal animal new Dog();// Dog dog (Dog)new Animal(); 编译成功&#xff0c;运行报错Dog dog (Dog)animal;Dog dog new Dog();Animal animal dog; //等价于Animal animal new Dog();}}pub…

java多生产者多消费者模拟实现

package com.example.springboottestone.main;import java.util.LinkedList; import java.util.Queue;/*** 多生产者多消费者模型是指多个生产者线程同时向缓冲区中添加数据&#xff0c;同时多个消费者线程从缓冲区中获取数据的并发模型。这种模型适用于需要高并发处理数据的场…

企业计算机服务器中了eking勒索病毒怎么办,eking勒索病毒解密数据恢复

随着计算机网络技术的不断发展与应用&#xff0c;企业的生产运营效率得到了极大提升&#xff0c;但网络安全威胁一直存在&#xff0c;网络威胁的技术也在不断更新&#xff0c;给企业的数据安全带来了严重威胁。在本月&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#…

C++ Qt开发:Qt的安装与配置

Qt是一种C编程框架&#xff0c;用于构建图形用户界面&#xff08;GUI&#xff09;应用程序和嵌入式系统。Qt由Qt公司&#xff08;前身为Nokia&#xff09;开发&#xff0c;提供了一套跨平台的工具和类库&#xff0c;使开发者能够轻松地创建高效、美观、可扩展的应用程序。其被广…

Python---random库

目录 基本随机数函数(): rand.seed() random() 扩展随机数函数(): random库包含两类函数&#xff1a;基本随机数函数&#xff0c;扩展随机数函数 基本随机数函数:seed(),random() 扩展随机数函数&#xff1a;randint,getrandbits(),uniform(),randrange(),choice(),shuff…

猴子吃桃问题(for循环)

一只猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个&#xff1b;第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时&#xff0c;见只剩下一个桃子了…

ECS云主机容量大于2TB,初始化Linux数据盘(parted)

本文为您介绍当容量大于2TB时&#xff0c;如何在Linux环境下适用parted分区工具初始化数据盘。 操作场景 本文以“CentOS 7.6 64位”操作系统为例&#xff0c;介绍当磁盘容量大于2TB时&#xff0c;如何使用parted分区工具在Linux操作系统中为数据盘设置分区&#xff0c;操作回…

SAP UI5 walkthrough step6 Modules

在SAPUI5 中&#xff0c;资源通常用作Modules&#xff0c;这个我们将用Message Toast 来实现告警功能 修改controller.js webapp/controller/App.controller.js sap.ui.define(["sap/ui/core/mvc/Controller","sap/m/MessageToast" ], (Controller, Mes…

Python中的Alpha-Beta剪枝算法:优化博弈树搜索

标题&#xff1a;Python中的Alpha-Beta剪枝算法&#xff1a;优化博弈树搜索 摘要&#xff1a;Alpha-Beta剪枝算法是一种用于优化博弈树搜索的算法&#xff0c;能够降低搜索的时间复杂度&#xff0c;提高程序的性能和效率。本文将介绍Alpha-Beta剪枝算法的原理&#xff0c;以及…

Java 1对1

文章目录 前言 客户端 服务器端 输出线程端 End 前言 TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的网络传输协议&#xff0c;它提供了端到端的数据传输和可靠性保证。 本程序就是基于tcp协议编写而成的。 利用 TCP 协议进行通信的…

js 复制粘贴板,当clipboardjs 不好使怎么办?

最近项目中做一个很常见的复制粘贴的功能耽误了比较长的时间特此记录&#xff0c;在往常这个功能直接用 clipboard 做就行了&#xff0c;但是这次却发现复制功能不好使了&#xff0c;虽然走了复制成功的回调&#xff0c;但是粘贴板并没有复制的内容。代码如下 <div v-for&q…

java实现冒泡排序算法

文章目录 冒泡排序算法 冒泡排序算法 算法原理&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。 对每一对相邻元素做同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。 针对所有的元素重…

Leetcode 345. Reverse Vowels of a String

Problem Given a string s, reverse only all the vowels in the string and return it. The vowels are ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’, and they can appear in both lower and upper cases, more than once. Algorithm Collect all the vowels and reverse the…

人工智能教程(三):更多有用的 Python 库

目录 前言 推荐 JupyterLab 入门 复杂的矩阵运算 其它人工智能和机器学习的 Python 库 前言 在本系列的上一篇人工智能教程&#xff08;二&#xff09;&#xff1a;人工智能的历史以及再探矩阵中&#xff0c;我们回顾了人工智能的历史&#xff0c;然后详细地讨论了矩阵。在…

【数据结构和算法】--- 栈

目录 栈的概念及结构栈的实现初始化栈入栈出栈其他一些栈函数 小结栈相关的题目 栈的概念及结构 栈是一种特殊的线性表。相比于链表和顺序表&#xff0c;栈只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的…

概率论之 证明 正态分布的上a 分位点的对称的性质

公式(Z(a) -Z(1-a)) 表示正态分布的上(a)分位点与下(1-a)分位点在分布曲线上关于均值的对称性。 左侧 (Z(a))&#xff1a; 这是分布曲线上累积概率为(a)的那个点。也就是说&#xff0c;这是一个使得这个点及其左侧的面积占据整个曲线下方(a)的位置。 右侧 (Z(1-a))&#xff1…