目录

冒泡排序

插入排序

选择排序

快速排序

归并排序

二分查找


冒泡排序

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;
}

手写基础排序及查找算法相关推荐

  1. 数据结构排序、查找算法

    前言 这是数据结构的实验四的题目. 为了自己能在繁杂的文件中顺利.快速地找到自己熟悉的排序.查找算法代码,故借CSDN平台存放本人写的代码.另外,还请有缘看到此文章的同行们能多多指点. 非常感谢. 1 ...

  2. 实验四 手写数字识别的神经网络算法设计与实现

    实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...

  3. 模式识别 实验四 手写数字识别的神经网络算法设计与实现

    实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...

  4. Python手写实现LDA与QDA算法

    Python手写实现LDA与QDA算法 简略版 LDA QDA 完整版 LDA QDA 对IRIS数据集进行实验 近期实验室在上一门机器学习的讨论班,第一次作业中有一道题要求实现LDA算法与QDA算法 ...

  5. 数字手写识别——Java实现KNN算法

    引言 手写识别也是当前机器学习的一大热点,数字手写识别是手写识别中的基础,我们用到的是knn算法,今天给大家讲一下我的实现方法: 环境 IDE:Eclipse 语言:Java 项目:数字手写识别 思路 ...

  6. 基于python的手写数字识别knn_KNN分类算法实现手写数字识别

    需求: 利用一个手写数字"先验数据"集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ♦数据维度比较大,样本数比较多. ♦ 数据集包括数字0-9的手写体. ...

  7. 手写 30 个主流机器学习算法,代码超 3 万行,全都开源了!

    点击上方"视学算法",选择"星标"公众号 第一时间获取价值内容 本文经机器之心(ID:almosthuman2014)授权转载,禁二次转载 参与:思源.一鸣.张 ...

  8. 实验四:手写数字识别的神经网络算法设计与实现

    一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机     matlab软件 三.实验内容 按照BP神经网络设计方法选用两层B ...

  9. python算法系列排序与查找_Python 排序与查找算法收集

    Python 语言实现几种不同的排序算法,代码来自于老男孩Python全栈开发,学习教程! import random import time import copy import sys def c ...

最新文章

  1. Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏
  2. Mastering KVM Virtualization:第二章 KVM内部原理
  3. 转】阿里哈尔滨2014笔试题及【原创】答案
  4. anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  5. 在hadoop中传递变量
  6. RPNet++:人脸对齐faceAlignment和基于CNN的三维人脸恢复
  7. jsp中使用cookie时报错……
  8. python2和python3的默认编码_python2和python3哪个版本新
  9. 离群点检测方法_离群点+高杠杆点+强影响点,这些都是啥意思?
  10. RFID打印机有什么用
  11. jQuery中 trigger() 使用心得
  12. ehcache 在web项目中使用
  13. Coredump-N, segfault at 0 ip 0000000000000000 sp; 被kernel 抓到
  14. 【html----花瓣特效(附源代码)】
  15. AcrelEMS-IDC综合能效管理系统在某数据中心的应用
  16. kubuntu 20.04 终端输入中文时乱码
  17. java基于ssm的高速公路收费管理系统
  18. Excel VBA——两种获取使用最大行数的方法
  19. jquery 自动触发a 标签的click()方法
  20. C# 加减乘除计算器

热门文章

  1. Spring AOP AspectJ 代码实例
  2. GDB调试多进程程序或同时调试多个程序
  3. PHP 单元测试工具 SimpleTest
  4. 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
  5. [导入]正则表达式学习心得体会(3)(转)
  6. OpenTSDB安装
  7. 每天一个linux命令(目录文件操作):【转载】Linux文件类型与扩展名
  8. 06002_Redis概述
  9. CS100.1x Introduction to Big Data with Apache Spark
  10. 多线程中,NSOperationQueue和GCD的区别