【C/C++】冒泡排序与二分查找

冒泡排序:就是相邻两个数进行比较,如果a>b(或者a<b)则交换值,每次把一个最大(或者最小)的值往后推。

二分查找:每次取头和尾的中间下标的值a与目标值b进行比较,如果a>b表示目标值b在中间下标前面,把头指向中间下标的前一位;如果a<b表示目标值b在是中间下标后面,把尾指向中间下标的后一位;如果a==b则返回中间下标。查找失败返回-1。

1.随机初始化一个指定长度的数组。

2.对数组进行排序。

3.输入一个值,并查找该值在数组中的下标。

时间: 2024-10-25 04:53:10

【C/C++】冒泡排序与二分查找的相关文章

C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)

C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆) 虽然直接插入排序,冒泡排序以及二分查找是算法中最为基础以及老掉牙的话题,但作为一名算法的深爱者,有时候无聊时候总会将这些简单的话题重新理解并敲写一番,目的只是为了得到理解娴熟的程度.而且,我觉得越是简单基础的东西,有时候更应该反复的去敲写,深化它,并最终让其中的思想内化为自己的一部分.待到他日一提起之时,会相当娴熟的"刷刷刷..."几分钟搞定,那就很有成就感了! 因为我喜欢对于一个问题进行实例的剖析,进而再转化为特有的用某种

Java冒泡排序和二分查找(预习)

经查阅,将资料整理如下: 一.冒泡排序 1.算法简介 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名. 2.算法原理 (1)比较相邻的元素.如果第一个比第二个大,就交换他们两个. (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. (3)针对所有的元素重复以上的

选择、冒泡排序,二分查找法以及一些for循环的灵活运用

import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] array = { 31, 22, 15, 77, 52, 32, 18, 25, 16, 7 }; // 冒泡 --> 两两比较 --> 提取出最大的数 在最后一位 //拿第一位和它后面的一位进行 两两比较 System.out.println(Arrays.toString(array)); fo

冒泡排序、二分查找法

冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部. 1 package com.hanqi; 2 3 public class maopao { 4 5 public static void main(String[] args) { 6 int[]array=new int[]{63,4,24,1,3,13}; 7 System.out.println("冒

关于数组的几个小题目-冒泡排序、二分查找、直接选择排序、反转数组

1. 实现冒泡排序算法,对比相邻元素,如果满足条件就叫唤元素值,把较小的元素移动到数组前面,把较大的元素移动到数组的后面,这样较小的元素就逐渐从底部上升到顶部,排到前面了. public class zuoye14_maopaopaixu { public static void main(String[] args){ int[] array = new int[]{12,45,21,35,65,24,43}; for(int i=0;i<array.length;i++){ for(int

js基本算法:冒泡排序,二分查找

知识扩充: 时间复杂度:算法的时间复杂度是一个函数,描述了算法的运行时间.时间复杂度越低,效率越高. 自我理解:一个算法,运行了几次时间复杂度就为多少,如运行了n次,则时间复杂度为O(n). 1.冒泡排序 解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置. 2.第一轮的时候最后一个元素应该是最大的一个. 3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较. 1 function sort(elements){ 2 for(v

0913作业(冒泡排序、二分查找法、模拟摇乐游戏)

1.冒泡排序从小到大打印出(代码如下) package f.java; public class LS { public static void main(String[] args) { // TODO Auto-generated method stub int[]i={10,20,30,14,15,26}; for(int a=0;a<i.length;a++) { for(int b=a+1;b<i.length;b++) { int temp; if(i[a]>i[b]) {

C基础--冒泡排序和二分查找法

#include <stdio.h> #include <time.h> #include <stdlib.h> #define N 10 void init_arry(int a[], int n) { int i; srand(time(NULL)); for (i = 0; i < n; i++) a[i] = rand() % 100; } void show_arry(int a[], int n) { int i; for (i = 0; i <

Java学习 (七)、数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序

一.常用数组查找算法 工作原理:它又称为顺序查找,在一列给定的值中进行搜索,从一端的开始逐一检查每个元素,知道找到所需元素的过程. 例1:查找指定的数在数组中出现的位置,找到返回下标,找不到返回-1 1 import java.util.Scanner; 2 public class LinearSearch{ 3 public static void main(String []argas) 4 { 5 int [] array={10,100,90,65,80,92}; 6 System.o