插入排序

  

import java.util.Arrays;

public class InsertionSort {

    /**
* 对数组里面进行插入排序
* 参数1 数组
* 参数2 数组大小
*/
static void InsertSort(int arr[]){ int in,out,temp;
for ( out = 1; out < arr.length; out++) {
temp = arr[out];
in=out;
while (in>0 && arr[in-1]>=temp){
arr[in]=arr[in-1];
in--;
}
arr[in]=temp;
}
} public static void main(String[] args) {
int[] arr={2,4,5,6,8,0,1,5,9,7};
InsertSort(arr);
System.out.println(Arrays.toString(arr));
}
}

快速排序

  

import java.util.Arrays;

public class QuickSort {

    /**
* 快排
* @param arr 用于排序的数组
* @param l 数组的左边界
* @param r 数组的右边界
*/
static void Quicktion(int arr[],int l,int r){ int i,j,pivot;
if(l<r){
i=l;j=r;
pivot=arr[i];
while (i<j){ while (i<j && arr[j]>pivot) j--;//从右往左
if(i<j){
arr[i]=arr[j];
i++;
}
while (i<j && arr[i]<pivot) i++;//从左往右
if(i<j){
arr[j]=arr[i];
j--;
}
}
arr[i]=pivot;
Quicktion(arr,l,i-1);
Quicktion(arr,i+1,r);
} } public static void main(String[] args) { int arr[] = {8,6,4,2,0,7,3,5,9};
Quicktion(arr,0,8);
System.out.println(Arrays.toString(arr));
}
}

折半查找

public class BinSearch {

    /*递归版*/
public static int binsearch1(int v[],int x,int left,int right){ int middle;
if(left<=right){
middle=(left+right)/2;
if(v[middle]==x) return middle;
else if(a[middle]<x) left=middle+1;
else if(a[middle]>x) right=middle-1;
return binsearch1(v, x, left, right);
} } /*迭代版*/
public static int binsearch(int x,int v[],int n){ int low,high,mid;
low=0;high=n-1;
while (low<=high){
mid = (low+high)/2;
if(x<v[mid]){
high=mid-1;
}else if(x>v[mid]){
low=mid+1;
}else{
return mid;
}
}
return -1;
} public static void main(String[] args) { int arr[] = {1,3,4,5,6,7,8,10};
int result,num;
num=10;
result = binsearch(num,arr,8);
if(result<0){
System.out.println("not found");
}else{
System.out.println(result+" , found……");
}
}
}

折半、快排、插入排序的Java实现的更多相关文章

  1. Java排序算法分析与实现:快排、冒泡排序、选择排序、插入排序、归并排序(二)

    一.概述: 上篇博客介绍了常见简单算法:冒泡排序.选择排序和插入排序.本文介绍高级排序算法:快速排序和归并排序.在开始介绍算法之前,首先介绍高级算法所需要的基础知识:划分.递归,并顺带介绍二分查找算法 ...

  2. java排序,冒泡排序,选择排序,插入排序,快排

    冒泡排序 时间复杂度:O(n^2) 空间复杂度O(1) 稳定性:稳定 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最 ...

  3. Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等

    本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...

  4. Java实现的各种排序算法(包括冒泡,快排等)

    //堆排序 不稳定 import java.util.Arrays; public class HeapSort { public static void main(String[] args) { ...

  5. Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...

  6. 基于visual Studio2013解决算法导论之010快排中应用插入排序

     题目 快排中引用插入排序 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> ...

  7. 快排+java实现

    import java.util.Arrays; public class QuickSort { //三数取中法.取出不大不小的那个位置 public static int getPivotPos( ...

  8. Java 排序(快排,归并)

    Java 排序有Java.util.Arrays的sort方法,具体查看JDK API(一般都是用快排实现的,有的是用归并) package yxy; import java.util.Arrays; ...

  9. 快排的java实现方式,用java代码来实现快排

    1. 快排的思想 通过一趟排序将要排序的数据分割成独立的两部分,前一部分的所有数据都要小于后一部分的所有数据,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据的 ...

随机推荐

  1. pandas 对数据帧DataFrame中数据的索引及切片操作

    1.创建数据帧 index是行索引,即每一行的名字:columns是列索引,即每一列的名字.建立数据帧时行索引和列索引都需要以列表的形式传入. import pandas as pd df = pd. ...

  2. 知乎专栏开放性api

    概述 这是我在工作中扒的知乎专栏的开放性api,记录下来供以后开发时参考,相信对其他人也有用. 参考资料: zhihu库 zhihu-oauth库 开放性api 其中hemingke是专栏名字,可以换 ...

  3. [Swift]LeetCode1035.不相交的线 | Uncrossed Lines

    We write the integers of A and B (in the order they are given) on two separate horizontal lines. Now ...

  4. 编辑器开发之 Range 范围对象的学习

    写在前面: 网上有各种富文本编辑器,微博分享等操作,这些功能非常实用,他们就是使用 range,selection 对象来实现的,这两个对象偏冷门,不涉及编辑器一般用不到,range 对象是对选区的操 ...

  5. Java相关面试题总结+答案(三)

    [多线程] 35. 并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务.(是真正的物理上的同时发生) 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来 ...

  6. jquery mobile 建wap站

    使用jquery mobile 建手机wap站: 几篇比较好的文章 http://wap.yesky.com/dev/225/30974725.shtml http://tech.it168.com/ ...

  7. 如何加速golang写业务的开发速度

    如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了.一个项目中,会有30%或者更多的是在处理e ...

  8. C# 《编写高质量代码改善建议》整理&笔记 --(五)类型设计

    1.区分接口和抽象类的应用场合 区别: ①接口支持多继承,抽象类则不能. ②接口可以包含方法,属性,索引器,事件的签名,但不能有实现,抽象类则可以. ③接口在增加新方法后,所有的继承者都必须重构,否则 ...

  9. MySQL系列--3.数据类型和连接查询

    1.存储引擎 数据创建,查询,更新和删除操作都是通过数据引擎来进行的.不同的存储引擎存储限制不同,支持不同的索引机制等. 查询数据库支持的存储引擎 MySQL 5.7.2支持的存储引擎有:InnoDB ...

  10. 图像检索(2):均值聚类-构建BoF

    在图像检索时,通常首先提取图像的局部特征,这些局部特征通常有很高的维度(例如,sift是128维),有很多的冗余信息,直接利用局部特征进行检索,效率和准确度上都不是很好.这就需要重新对提取到的局部特征 ...