冒泡排序选择排序 以及时间效率对比
1 package com.test4; 2 import java.util.*; //Calendar 显示时间 3 /** 4 * @author qingfeng 5 * 功能:冒泡排序 6 */ 7 public class Bubble { 8 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 //int arr[] = {10,1,-20,89,-1,78,-45}; 12 13 //随机产生大量数据 14 15 int len = 50000; 16 int[] arr = new int[len]; 17 18 19 for(int i=0; i<len; i++) 20 { 21 //产生1到1000的数 22 arr[i] = (int)(Math.random()*1000); 23 } 24 /* 25 for(int i=0; i<len; i++) 26 { 27 System.out.print(arr[i]+" "); 28 } 29 System.out.println(); 30 */ 31 BubbleSort bs = new BubbleSort(); 32 //显示排序前的时间 33 Calendar time = Calendar.getInstance();//获取时间实例 34 System.out.println("排序前的时间为:"+time.getTime());//50000个数排序4秒 35 bs.sort(arr); 36 37 /* 38 SelectSort ss = new SelectSort(); //50000个数排序1秒 39 ss.sort(arr); 40 */ 41 /* 42 int a = 1; 43 bs.test(a); 44 System.out.println("a的值为:"+a);//a的值为1 并不是2 因为是值传递 45 */ 46 47 /* 48 System.out.println("-----------------------------"); 49 for(int i=0; i<arr.length; i++) 50 { 51 System.out.print(arr[i]+" "); 52 } 53 System.out.println(); 54 */ 55 //显示排序前的时间 56 Calendar time2 = Calendar.getInstance();//获取时间实例 57 System.out.println("排序后的时间为:"+time2.getTime()); 58 } 59 } 60 //冒泡排序 61 class BubbleSort 62 { 63 public void test(int a)//值传递 64 { 65 a++; 66 } 67 public void sort(int arr[]) //引用传递(复合类型) 68 { 69 int temp; 70 71 //冒泡排序 72 //外层循环:n个数 n-1趟排序 73 for(int i=0; i<arr.length-1; i++) 74 { 75 //内层循环:若前比后打则交换 (每趟比前一趟少排一个数:所以"-i") 76 for(int j=0; j<arr.length-1-i; j++) 77 { 78 if(arr[j]>arr[j+1]) 79 { 80 temp = arr[j+1]; 81 arr[j+1] = arr[j]; 82 arr[j] = temp; 83 } 84 } 85 } 86 } 87 } 88 //选择排序 89 class SelectSort 90 { 91 public void sort(int arr[])//引用传递 92 { 93 //外层循环:n个数 n-1趟排序 最后一个数不要再次排序 94 for(int i=0; i<arr.length-1; i++) 95 { 96 int min=arr[i]; 97 int minIndex = i; 98 99 int j; 100 int temp; 101 //内层循环:选择min值 102 for(j=i+1; j<arr.length; j++) 103 { 104 if(min > arr[j]) 105 { 106 min = arr[j]; 107 minIndex = j; 108 } 109 } 110 //最小值和每趟第一个值交换 111 temp = arr[i]; 112 arr[i] = arr[minIndex]; 113 arr[minIndex] = temp; 114 } 115 } 116 117 }
转载于:https://www.cnblogs.com/qingfengzhuimeng/p/6495762.html
冒泡排序选择排序 以及时间效率对比相关推荐
- 【排序算法】冒泡排序|选择排序|插入排序|希尔排序
文章目录 冒泡排序 选择排序 插入排序 希尔排序 冒泡排序 第一个元素开始向第二个元素比较,若大于则交换位置,不大于则不动.然后第二个元素和第三个元素比较,再然后第三个元素和第四个元素比较-一直比 ...
- c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习
材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...
- 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序
养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...
- 冒泡排序选择排序插入排序
目录 冒泡排序 选择排序 插入排序 冒泡排序 冒泡排序(最好是O(n), 最坏O(n2)) 原理: 拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结 ...
- 冒泡排序、插入排序、选择排序的时间、空间复杂度以及优化方案
文章目录 冒泡排序 插入排序 选择排序 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 需求:{4,5,6,3,2,1} 排序后:{1,2,3,4,5,6} 排 ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 冒泡排序 选择排序 快速排序(C语言)
#include <stdio.h> #include <stdlib.h> #include <time.h> //用到了time函数#define arrayS ...
- 了解冒泡排序选择排序
冒泡排序 依次比较相邻的两个数,将小数放在前面,大数放在后面. 双层循环比较,然后交换位置 注意:冒泡排序比较的是相邻的两个数,而选择排序比较的整个队列中最大或者是最小的数进行交换. 第一趟:首先比较 ...
- 第三次学JAVA再学不好就吃翔(part59)--冒泡排序选择排序以及二分查找
学习笔记,仅供参考 文章目录 数组高级冒泡排序 数组高级选择排序 二分查找法 数组高级冒泡排序 冒泡排序原理:设数组中有n个元素,从第一个元素开始,对相邻元素进行两两比较,两个元素中大的往后放,第一次 ...
最新文章
- mysql日常错误信息解决方法:InnoDB: and force InnoDB to continue crash recovery here.
- ABAP Netweaver Webcontent path的determine逻辑
- android listview中item倒计时,GitHub - TangAnna/ListViewTimer: 列表中每一个item都有计时器 (可实现倒计时或者计时器的功能)...
- linux怎么安装32电脑上,linux – 如何在Ubuntu上安装mingw32?
- Python | 这是过七夕吗?这是趁机学习一下下,就一下~~
- 如何获取android源码
- rope 实用把一段区间的数字整体搬到序列中的一段的时候用
- 使用Sphinx对MySQL数据库进行全文检索
- ArcGIS中输出指定比例尺图片
- 怎样进入金蝶服务器修改参数,金蝶KIS专业版启用后如何后台修改系统参数
- php语言标记可用什么符号,【单选题】不可用作PHP语言标记用的是什么( )符号
A. ? B. 〈php C. ?...
- 网络口碑营销从“可以做”、“值得做”到了“必须做好”的阶段!
- 计算机的记事本和写字板的功能,记事本和写字板有什么不同?功能上
- 开源中Web开发的各种资源
- 如何在终端里面使用ping来查局域网活动ip
- 浏览器禁用cookie后session还能用吗?cookie与session区别
- 一个日本人写的插件:Breath Controller
- 老曹眼中的“团队管理”
- 【开发环境】(基于Hexo)个人博客主题(Hexo Fluid)更换
- u盘安装盘的制作汇总
热门文章
- bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
- 如何将本地项目上传至GitHub
- 【图像处理】数字图像处理之颜色
- 【Linux】一步一步学Linux——let命令(223)
- 【Linux】一步一步学Linux——ssh-copy-id命令(180)
- oracle里返回值吗,Oracle有返回值的存储过程 | 学步园
- android点九,android关于点九(.9)图片
- 每天一道LeetCode-----生命游戏
- 每天一道LeetCode-----化简路径
- iOS 12.0-12.1.2 完整越狱支持 Cydia