手写基础排序及查找算法
目录
冒泡排序
插入排序
选择排序
快速排序
归并排序
二分查找
冒泡排序
void bubble_sort(int a[],int n){int t;for(int i=n-1;i>=0;i--)for(int j=0;j<i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
插入排序
void insert_sort(int a[],int n){int t,j;for(int i=1;i<n;i++){t=a[i];for(j=i-1;j>=0&&a[j]>t;j--)a[j+1]=a[j];a[j+1]=t;}
}
选择排序
void select_sort(int a[],int n){int minn,t;for(int i=0;i<n;i++){minn=i;for(int j=i+1;j<n;j++)if(a[j]<a[minn])minn=j;t=a[i];a[i]=a[minn];a[minn]=t;}
}
快速排序
void quick_sort(int a[],int l,int r){if(l>=r)return;int i=l,j=r-1,x=a[i];while(i<j){while(a[j]>=x&&i<j)j--;a[i]=a[j];while(a[i]<=x&&i<j)i++;a[j]=a[i];}a[i]=x;quick_sort(a,l,i);quick_sort(a,i+1,r);
}
归并排序
// 头尾包括
void merge(int a[],int b[],int l,int m,int r){int i=l,j=m+1,k=0;while(i<=m&&j<=r){if(a[i]>a[j])b[k++]=a[j++];else b[k++]=a[i++];}while(i<=m)b[k++]=a[i++];while(j<=r)b[k++]=a[j++];for(int i=0;i<k;i++)a[i+l]=b[i];
}void merge_sort(int a[],int b[],int l,int r){if(l<r){int m=(l+r)/2;merge_sort(a,b,l,m);merge_sort(a,b,m+1,r);merge(a,b,l,m,r);}
}
二分查找
int binary_find(int a[],int l,int r,int key){int low=l,high=r-1,mid;while(low<high){mid=(low+high)/2;if(a[mid]>key)high=mid-1;else if(a[mid]<key)low=mid+1;elsereturn mid;}return -1;
}
手写基础排序及查找算法相关推荐
- 数据结构排序、查找算法
前言 这是数据结构的实验四的题目. 为了自己能在繁杂的文件中顺利.快速地找到自己熟悉的排序.查找算法代码,故借CSDN平台存放本人写的代码.另外,还请有缘看到此文章的同行们能多多指点. 非常感谢. 1 ...
- 实验四 手写数字识别的神经网络算法设计与实现
实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...
- 模式识别 实验四 手写数字识别的神经网络算法设计与实现
实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...
- Python手写实现LDA与QDA算法
Python手写实现LDA与QDA算法 简略版 LDA QDA 完整版 LDA QDA 对IRIS数据集进行实验 近期实验室在上一门机器学习的讨论班,第一次作业中有一道题要求实现LDA算法与QDA算法 ...
- 数字手写识别——Java实现KNN算法
引言 手写识别也是当前机器学习的一大热点,数字手写识别是手写识别中的基础,我们用到的是knn算法,今天给大家讲一下我的实现方法: 环境 IDE:Eclipse 语言:Java 项目:数字手写识别 思路 ...
- 基于python的手写数字识别knn_KNN分类算法实现手写数字识别
需求: 利用一个手写数字"先验数据"集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ♦数据维度比较大,样本数比较多. ♦ 数据集包括数字0-9的手写体. ...
- 手写 30 个主流机器学习算法,代码超 3 万行,全都开源了!
点击上方"视学算法",选择"星标"公众号 第一时间获取价值内容 本文经机器之心(ID:almosthuman2014)授权转载,禁二次转载 参与:思源.一鸣.张 ...
- 实验四:手写数字识别的神经网络算法设计与实现
一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内容 按照BP神经网络设计方法选用两层B ...
- python算法系列排序与查找_Python 排序与查找算法收集
Python 语言实现几种不同的排序算法,代码来自于老男孩Python全栈开发,学习教程! import random import time import copy import sys def c ...
最新文章
- Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏
- Mastering KVM Virtualization:第二章 KVM内部原理
- 转】阿里哈尔滨2014笔试题及【原创】答案
- anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
- 在hadoop中传递变量
- RPNet++:人脸对齐faceAlignment和基于CNN的三维人脸恢复
- jsp中使用cookie时报错……
- python2和python3的默认编码_python2和python3哪个版本新
- 离群点检测方法_离群点+高杠杆点+强影响点,这些都是啥意思?
- RFID打印机有什么用
- jQuery中 trigger() 使用心得
- ehcache 在web项目中使用
- Coredump-N, segfault at 0 ip 0000000000000000 sp; 被kernel 抓到
- 【html----花瓣特效(附源代码)】
- AcrelEMS-IDC综合能效管理系统在某数据中心的应用
- kubuntu 20.04 终端输入中文时乱码
- java基于ssm的高速公路收费管理系统
- Excel VBA——两种获取使用最大行数的方法
- jquery 自动触发a 标签的click()方法
- C# 加减乘除计算器
热门文章
- Spring AOP AspectJ 代码实例
- GDB调试多进程程序或同时调试多个程序
- PHP 单元测试工具 SimpleTest
- 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
- [导入]正则表达式学习心得体会(3)(转)
- OpenTSDB安装
- 每天一个linux命令(目录文件操作):【转载】Linux文件类型与扩展名
- 06002_Redis概述
- CS100.1x Introduction to Big Data with Apache Spark
- 多线程中,NSOperationQueue和GCD的区别