选择排序&冒泡排序&折半查找
//选择排序
void test2(int a[],int len){
//每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储
// 假如第一个是最小值
int mine=0;
int teamp=0;
// 外层负责趟数
for (int i=0; i<len; i++) {
// 假如每一次的第一个是最小值
mine=i;
// 内层负责寻找每趟的最小值
// 每次起始比较值都不一样所以j=i+1,改变次数
for (int j=i+1; j<len; j++) {
// 最小值下标赋给mine
if (a[mine]>a[j]) {
mine=j;
}
//
}
// 交换 mine!=i表示最小值不是假设的值
if (mine!=i) {
teamp=a[i];
a[i]=a[mine];
a[mine]=teamp;
}
// 每次打印的都是最小值
printf("%d\t",a[i]);
}
}
//冒泡排序
void test3(int a[],int len){
int temp=0;
//外层负责趟数
for (int i=0; i<len; i++) {
// 内层负责每趟交换,起始值j=0不变,len-i-1控制次数
for (int j=0; j<len-i-1; j++) {
// 相邻值进行比较
if (a[j]>a[j+1]) {
//交换
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
printf("%d\t",a[len-i-1]);
}
printf("\n");
}
//折半查找,针对有序数组
int test4(int a[],int len,int key){
// 指向最高,最低,以及中间下标的变量
int hight=len-1,low=0,mid=0;
// 当low,hight,mid指向同一个时,就可以找到值
while (low<=hight) {
mid=(hight+low)/2;
// 在右边
if (key>a[mid]) {
low=mid+1;
// 在左边
}else if (key<a[mid]){
hight=mid-1;
}
// 刚好是
else{
return mid;
}
}
return -1;
}
选择排序&冒泡排序&折半查找的更多相关文章
- Java学习笔记day07_琐碎知识_水仙花数_ASCII码_冒泡排序_简单选择排序_折半查找
琐碎知识: 水仙花数, ASCII码, 冒泡排序, 简单选择排序, 折半查找 1.水仙花数 每位数的平方的和等于本身. 如100到999之间的水仙花数满足: 个位的平方+十位的平方+百位的平方 = 本 ...
- C语言之冒泡排序、选择排序、折半查询、进制查表
菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...
- Java基础【冒泡、选择排序、二分查找】
冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置 大的数字后浮 如 12 8 5 31 第一轮 8 5 12 31 第二轮 5 8 ...
- StringBuffer、StringBuilder、冒泡与选择排序、二分查找、基本数据类型包装类_DAY13
1:数组的高级操作(预习) (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每个元素都有从0开始的编号,方便我们获取.专业名称:索引. (3)数组操作: A:遍历 public stat ...
- C语言数组之冒泡排序+折半查找法(二分查找)
冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...
- java-冒泡排序、选择排序、二分查找
1.冒泡排序 public void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { //外循环只需要比较a ...
- Java ——数组 选择排序 冒泡排序
本节重点思维导图 数组 public static void main(String[] args) { int a ; a=3; int[] b; b = new int[3];//强制开辟内存空间 ...
- [Java]数组排序-选择排序 冒泡排序 插入排序
1 选择排序 原理:a 将数组中的每个元素,与第一个元素比较 如果这个元素小于第一个元素, 就将这个 两个元素交换. b 每轮使用a的规则, 可以选择出 ...
- [模板]选择排序&&冒泡排序&&插入排序
#include<iostream> #include<cstdio> #include<bits/stdc++.h> using namespace std; v ...
随机推荐
- cogs 1317. 数列操作C 区间修改 区间查询
1317. 数列操作C ★★★ 输入文件:shuliec.in 输出文件:shuliec.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述] 假设有一个长度为 n( ...
- C#文件下载流程
private bool DownloadPicture(string picUrl, string savePath, int timeOut) { bool ...
- v-text,v-html等区别
首先我们知道vue中有很多自定义指令,以v- 开头,例如:v-text,v-bind,v-model, v-if,等 在这些指令中,部分指令之间是很容易被混淆,所以今天决定自己总结一下以下几个相似指令 ...
- 洛谷P2125 题解
吐槽: 只能说这道题很数学,本数学蒟蒻推了半天没推出来,只知道要用绝对值,幸亏教练提醒,才勉强想出正解(似乎不是这样的),真的是很无语. 以上皆为吐槽本题,可直接 跳过 分析: 既然题目是要使书架上的 ...
- Shiro权限管理框架(三):Shiro中权限过滤器的初始化流程和实现原理
本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看 ...
- Spark 系列(四)—— RDD常用算子详解
一.Transformation spark 常用的 Transformation 算子如下表: Transformation 算子 Meaning(含义) map(func) 对原 RDD 中每个元 ...
- 微服务与网关技术(SIA-GateWay)
一.背景 软件架构,总是在不断的演进中... 把时间退回到二十年之前,当时企业级领域研发主要推崇的还是C/S模式,PB.Delphi这样的开发软件是企业应用开发的主流.随着时间的推移,基于浏览器的B/ ...
- Spring1
一.Spring是什么?有什么用? Spring的适用环境是这样的,假设现在有一个类port,它将提供一个返回消息的功能,代码如下: public class port { private weibo ...
- lxml解析网页
目录 1. 什么是lxml 2. 初次使用 3. xpath 3.2 标签定位 3.3 序列定位 3.4 轴定位 4. 实例 1. 什么是lxml lxml是干什么的?简单的说来,lxml是帮助我们解 ...
- Java反射Reflect的使用详解
目录 一. 什么是反射 二. 反射的基础Class 2.1 Class类概述 2.2 Class类对象获取的三种方式 三. 反射-构造函数 3.1 getDeclaredConstructor(Cla ...