java 选择排序与冒泡排序
选择排序与冒泡排序的特点与区别
++++++++++++++++++++++++++++++++++++++++++++++
| 选择排序 |
这一种简单的排序方法,它的基本思想是: |
| 特点 |
选择排序的平均时间复杂度是O(n²)的。 |
for(int i = 0;i<arr.length;i++){
for(int j= 1 ; j<arr.length;j++){
if(arr[j-1]>arr[j]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}
}
}
+++++++++++++++++++++++++++++++++++++++++++++++
| 冒泡排序 |
依次比较相邻的两个数,将小数放在前面,大数放在后面。 |
| 特点 |
冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但也是非常容易实现的算法。 |
for(int i =0;i<arr.length-1;i++){ //遍历第n趟
for(int j=0;j<arr.length-1-i;j++){ //从第一个开始遍历
if(arr[j]>arr[j+1]){ //前面的数比后面的数大
int temp = arr[j]; //然后进行交换,将大的往后排
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
二分法
/*
为了提高查找效率,可使用折半查找的方式,注意:这种查找只对有序的数组有效。
这种方式也成为二分查找法。
*/
public static int halfSeach(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;
}
陌陌说:选择排序(包含shaker排序/堆排序)和冒泡排序都属于交换排序的一种。
计算机的一些排序算法:插入排序 、冒泡排序 、选择排序 、快速排序 、堆排序 、归并排序、基数排序、希尔排序
【每个排序算法都有一个 平均时间复杂度】
java 选择排序与冒泡排序的更多相关文章
- java 选择排序、冒泡排序、折半查找
public class SortAndSelectDemo{ public static void main(String[] args){ int[] arr = {3, 5, 17, 2, 11 ...
- Java-数据结构与算法-选择排序与冒泡排序
Java 选择排序与冒泡排序 1.DataSorter.java public class DataSorter { //冒泡排序法 //主要思路:按升序排序,数组元素两两比较,大的立即排后面 pub ...
- 算法——蛮力法之选择排序和冒泡排序c++实现
这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...
- C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...
- 【java基础】选择排序and冒泡排序
前言 : 今天学习的是J2SE视频里的第五章,数组部分,它里面留了一个经典的作业,就是让我们去从1倒9按一定规格排序,这让我想起了学习vb的时候最最让我头疼的两种排序方法,选择排序法 和 冒泡排序法. ...
- Java中选择排序,冒泡排序,插入排序,快速排序
一:冒泡法排序 //冒泡排序 注:从小到大排 //特点:效率低,实现简单 //思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素. 这只是冒泡排序 ...
- 第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)
获取数组的最值(最大值和最小值) 思路: 1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该 值不确定,需要一个变量进行临储. 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于 ...
- 插入排序,选择排序,冒泡排序等常用排序算法(java实现)
package org.webdriver.autotest.Study; import java.util.*; public class sort_examp{ public static voi ...
- 关于Java中的选择排序法和冒泡排序法
一,这种方法是直接传入一个数组进行排序(选择排序法) public static void selectSort(int arr[]){ for (int i = 0; i < arr.leng ...
随机推荐
- linux 实现VLAN
本文将在一台linux机器上,利用linuxbridge 等技术模拟创建VLAN 环境. 首先,创建vlan interface ip link add link ens33 name ens33.8 ...
- 我的arcgis培训照片7
来自:http://www.cioiot.com/successview-553-1.html
- Python学习系列之format用法
format是代替%s格式的方法 不需要理会数据类型的问题,在%s方法中的%s只能代替字符串类型 填充方式十分灵活,对其方式十分强大 format填充字符串 通过位置来填充字符串 #format会把参 ...
- Android Wear - App Structure for Android Wear(应用结构)
---------------------------------------------------------------------------------------------------- ...
- x86CPU 实模式 保护模式 傻傻分不清楚? 基于Xv6-OS 分析CR0 寄存器
基于Xv6-OS 分析CR0 寄存器 之前一直认为晕乎乎的...啥?什么时候切换real model,怎么切换,为什么要切换? ------------------------------------ ...
- 11gR2 RAC环境重建ASM SPFILE
有关11gR2 ASM spfile说明能够看 http://blog.csdn.net/robo23/article/details/41930051 下面粘出spfile重新启动过程: +++1) ...
- android 特殊符号开头的联系人归并至“#”下
在PeopleActivity界面.联系人的显示位置是由其display name的第一个字符决定的. 数字开头的联系人会显示在"#"这个header下. 中英文联系人会显示在&q ...
- Tomcat 隐藏Server Name
隐藏Http请求中的Header ServerName 方法一 在tomcat/lib/tomcat-coyote.jar中 下面两个文件 org/apache/coyote/http11/Const ...
- 9种样式CSS3 渐变button集
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- 解决Hibernate4执行update操作,不更新数据的问题
后台封装java对象,使用hibernate4再带的update,执行不更新数据,不报错. 下面贴出解决方法: 失败的方法 hibernate自带update代码:(失效) Session sessi ...