java-算法-选择排序、插入排序
来源:互联网 发布:软件自动安装器 编辑:程序博客网 时间:2024/05/18 01:44
继承可以方便的实现向一个类中增加属性
多态是指以相同的方法处理来自不同类的对象,为了使多态能够正常的运行,这些不同的类必须从同一个基类派生而来
char 2个字节
大O表示法表示了算法的速度是如何与数据项的个数相关的
O(1)表示一个操作执行了常量的时间
选择排序:第n次从全部数字中选择出一个最大或者最小的数字跟第n个数字交换位置
int [] arr={1,4,6,3,1,6,9,0,3,6,4,9};int num=arr.length;int sign=0;int temp=0;boolean b =false;for(int i=0;i<num;i++){for(int j=i;j<num-1;j++){if(arr[j+1]<arr[sign]){ //每次选出最小的sign=j+1;b=true;}}if(b){ //如果最小的为当前数字,则不进行移动temp=arr[sign];arr[sign]=arr[i];arr[i]=temp;b=false;}sign=i+1;for(int k=0;k<num;k++)System.out.print(arr[k]+" ");System.out.println();}
最后运行结果
0 4 6 3 1 6 9 1 3 6 4 9 0 1 6 3 4 6 9 1 3 6 4 9 0 1 1 3 4 6 9 6 3 6 4 9 0 1 1 3 4 6 9 6 3 6 4 9 0 1 1 3 3 6 9 6 4 6 4 9 0 1 1 3 3 4 9 6 6 6 4 9 0 1 1 3 3 4 4 6 6 6 9 9 0 1 1 3 3 4 4 6 6 6 9 9 0 1 1 3 3 4 4 6 6 6 9 9 0 1 1 3 3 4 4 6 6 6 9 9 0 1 1 3 3 4 4 6 6 6 9 9 0 1 1 3 3 4 4 6 6 6 9 9
插入排序是稳定排序,即相同的数据不会交换位置
int [] arr={4,3,1,7,2,5,1};int temp=arr[1];//temp为标志int in=0,out=0;for(out=1;out<arr.length;out++){in=out;temp=arr[out];while(in>0&&arr[in-1]>temp){//从标志的前面一位开始比较,直到不小于它前面的数为止arr[in]=arr[in-1];//向后移动位置--in;}arr[in]=temp;//将标志放在位置移动的最后下标那for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}System.out.println();}}
输出结果
3 4 1 7 2 5 1
1 3 4 7 2 5 1
1 3 4 7 2 5 1
1 2 3 4 7 5 1
1 2 3 4 5 7 1
1 1 2 3 4 5 7
1 2 3 4 5 7 1
1 2 3 4 5 7 7
1 2 3 4 5 5 7
1 2 3 4 4 5 7
1 2 3 3 4 5 7
1 2 2 3 4 5 7
1 1 2 3 4 5 7
从上面的一小段可以看出,最后末尾的1,移动到正数第二位,不会和第一位的1比较,但是我在java数据结构与算法一书中看到的算法,
in>0&&arr[in-1]>=temp//包含等号,反而会多比较一次
- java-算法-选择排序、插入排序
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- java排序算法:冒泡排序、选择排序、插入排序
- Java简单算法之 冒泡排序 选择排序 插入排序
- java实现冒泡排序,选择排序,插入排序算法详解
- Java实现选择排序、插入排序、希尔排序算法
- java算法之冒泡排序、选择排序、插入排序
- JAVA排序算法:插入、选择、冒泡
- java实现冒泡、选择、插入排序算法
- Java冒泡,选择,插入排序算法
- Java冒泡,选择,插入排序算法
- Java冒泡,选择,插入排序算法
- java算法篇---插入排序和选择排序算法
- Java排序算法(冒泡排序、选择排序、插入排序、反数组排序、快速排序)
- Java排序算法(冒泡排序、选择排序、插入排序、反数组排序、快速排序)例子
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排
- 【算法】插入排序/冒泡排序/选择排序
- 数据结构--排序算法(插入排序&&选择排序)
- 黑马程序员 Java基础<三>--->面向对象
- 书评:Java核心编程卷1——基础
- Photoshop cs5面板插件开发笔记02
- 数据库范式介绍
- hive的安装与配置
- java-算法-选择排序、插入排序
- 4.11 chown、fchown和lchown函数-文件用户与用户组
- 不用j-linkv也能够调试ok6410
- WebService服务的简单使用
- hdu—1005 Number Sequence
- 找出1234的一种排列,使得组成的数能被7整除
- 人和人的差异,就在于业余时间
- 高性能 HTTP服务器 qHttpd
- Flash Builder 4 语言元素图标的含义