一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
来源:互联网 发布:下颌第一磨牙雕刻数据 编辑:程序博客网 时间:2024/05/23 07:23
import java.util.Arrays;
*/
/**
*
*一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
*
*/
public class shuzusuanfa {
public static void main(String[] args){
int[] arr={1,3,4,5,6,7,5};
//xuanze(arr);
maopao(arr);
for(int a:arr){
System.out.println(a);
}
int index=zheban(arr,5);
System.out.println(index);
//Arrays.sort(arr); //排序将数组排成升序;
int index1=Arrays.binarySearch(arr,5);//此函数只能在升序时有用;
System.out.println(index1);
int[] newarr = arr.clone(); // 数组的克隆
System.out.println(Arrays.toString(newarr)); //打印数组的函数
int[] newarr1=shanjian(arr,5); //数组元素的提取和删除
System.out.println(Arrays.toString(newarr1));
}
/*
选择排序。
以一个角标的元素和其他元素进行比较。
在内循环第一次结束,最值出现的头角标位置上。
*/
public static void xuanze(int[] a){
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[j]>a[i]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
/*
冒泡排序。
比较方式:相邻两个元素进行比较。如果满足条件就进行位置置换。
原理:内循环结束一次,最值出现在尾角标位置。
*/
public static void maopao(int[] a){
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j+1]<a[j]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
/*
折半查找
为了提高查找效率,可使用折半查找的方式,注意:这种查找只对有序的数组有效。
这种方式也成为二分查找法。
*/
public static int zheban(int[] arr,int key){
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(min>max)
return -1;
mid = (max+min)/2;
}
return mid;
}
/*
* 数组的增加和减少
*/
public static int[] shanjian(int[] arr,int a){
int count=0,j=0;
for(int i=0;i<arr.length;i++){
if(arr[i]==a){
count++;
}
}
int[] newarr=new int[arr.length-count];
for(int i=0;i<arr.length;i++){
if(arr[i]==a){
}else{
newarr[j]=arr[i];
j++;
}
}
return newarr;
}
}
/** 作者:Darkjazz11
* 日期:2017年11月13日 下午8:37:28*/
/**
*
*一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
*
*/
public class shuzusuanfa {
public static void main(String[] args){
int[] arr={1,3,4,5,6,7,5};
//xuanze(arr);
maopao(arr);
for(int a:arr){
System.out.println(a);
}
int index=zheban(arr,5);
System.out.println(index);
//Arrays.sort(arr); //排序将数组排成升序;
int index1=Arrays.binarySearch(arr,5);//此函数只能在升序时有用;
System.out.println(index1);
int[] newarr = arr.clone(); // 数组的克隆
System.out.println(Arrays.toString(newarr)); //打印数组的函数
int[] newarr1=shanjian(arr,5); //数组元素的提取和删除
System.out.println(Arrays.toString(newarr1));
}
/*
选择排序。
以一个角标的元素和其他元素进行比较。
在内循环第一次结束,最值出现的头角标位置上。
*/
public static void xuanze(int[] a){
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[j]>a[i]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
/*
冒泡排序。
比较方式:相邻两个元素进行比较。如果满足条件就进行位置置换。
原理:内循环结束一次,最值出现在尾角标位置。
*/
public static void maopao(int[] a){
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j+1]<a[j]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
/*
折半查找
为了提高查找效率,可使用折半查找的方式,注意:这种查找只对有序的数组有效。
这种方式也成为二分查找法。
*/
public static int zheban(int[] arr,int key){
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(min>max)
return -1;
mid = (max+min)/2;
}
return mid;
}
/*
* 数组的增加和减少
*/
public static int[] shanjian(int[] arr,int a){
int count=0,j=0;
for(int i=0;i<arr.length;i++){
if(arr[i]==a){
count++;
}
}
int[] newarr=new int[arr.length-count];
for(int i=0;i<arr.length;i++){
if(arr[i]==a){
}else{
newarr[j]=arr[i];
j++;
}
}
return newarr;
}
}
阅读全文
0 0
- 一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
- java基础 选择排序、冒泡排序、折半查找法
- 优化的选择排序和折半查找法
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- 数组的冒泡排序和折半查找
- 数组的折半查找和冒泡排序
- 单链表的折半查找,冒泡排序,选择排序
- php中常见数组排序函数的用法和详解及二分法查找、冒泡法查找
- 选择-冒泡排序,折半查找
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法)
- JAVA冒泡排序和折半查找算法
- 插入冒泡选择以及折半法排序
- C语言---算法(选择排序/冒泡排序/折半查找/进制查表法)
- Java中常见的数组排序算法(包括冒泡,选择,插入,快速排序)
- 冒泡排序法和选择排序法的排序过程
- Java基础—选择排序,冒泡排序和折半查找
- 折半查找、简单选择排序和冒泡排序
- java 中“==”与“equal” 的区别
- 安装软件包
- 关于序列点的思考
- 日常写Bug——Python3打印完数据后不换行
- 剑指offer——面试题35:第一个只出现一次的字符
- 一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第八章 广度优先搜索算
- Web AppBuilder学习笔记1
- nginx 常用命令
- Android学习之搞搞7.0和6.0uri的不同
- 欢迎使用CSDN-markdown编辑器
- 四元数与复数之间的关系
- 回文判断
- Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)