java排序之一插入排序(一个方法同时给整型和字符串排序)
来源:互联网 发布:金融大数据应该学什么 编辑:程序博客网 时间:2024/05/29 17:44
关于直接插入排序的理解和思路
首先从其定义来理解:
插入排序:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法描述:
1、一个待排数组分成两部分:第一个元素看做已经排好的序列和后面所有的未排好的序列
2、取出未排好序列中的第一个元素key,与已经排好的序列中的元素从后向前进行比较
3、若前面的已经排好的序列中的元素data[i]大于key的值,则将data[i]移到下一位置data[i+1]
4、重复步骤3,直到找到已排序的元素小于或者等于key的位置,
5、将key的值插入到该位置后一个位置
6、进入(循环)重复2-5直到所有的元素都排好序为止
关于比较整数和字符串用到了接口 Comparable中的compareTo方法
因为Integer和String都实现了comparable都实现了Comparable接口
所以测试数据的时候通过使用 Comparable声明一个整型或字符串的数组即可
代码如下仅供参考:
package com.cslience.test;/* * author:cslience * time:2013/11/26 */public class InsertionSort {public void insertSort(Comparable[] data){for(int i=1;i<data.length;i++){ Comparable key=data[i]; int j=i; //关键字与其前面已排好的序列(从后向前顺次)进行比较 while(j>0&&key.compareTo(data[j-1])<0){ //将大的数向后移动一个位置 data[j]=data[j-1]; j--; } data[j]=key;}}//打印出数组中的所有元素public void show(Comparable[] data){for(int i=0;i<data.length;i++){System.out.println(data[i]);}}public static void main(String[] args){// 测试数据Comparable[] data1={10,3,15,9,0};Comparable[] data2={"abc","abd","bca","bad","aaa"};InsertionSort insert=new InsertionSort();System.out.println("插入排序从小到大排列数组:");insert.insertSort(data1);insert.show(data1);System.out.println("插入排序从小到大排序字符串:");insert.insertSort(data2);insert.show(data2);}}
- java排序之一插入排序(一个方法同时给整型和字符串排序)
- 排序之一(插入排序、归并排序)
- Java 冒泡排序、插入排序等六种排序方法、Java中文排序、Java字符串排序
- 排序之一:插入排序
- 常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)
- 两种排序方法(插入排序和选择排序)
- java插入排序方法
- 整型字符串排序
- 排序算法之一:冒泡排序和插入排序
- 对集合的一个字段排序(字符串、整型、日期)
- 排序之一、直接插入排序
- 排序算法之一插入排序
- 排序算法之一----插入排序
- 内部排序之一:插入排序
- 排序算法之一:插入排序
- java排序方法中的插入排序方法
- Java排序--插入排序
- 排序-插入排序-Java
- Apache Traffic Server
- php编写RSS源
- Fragment(1)Android Fragment完全解析,关于碎片你所需知道的一切
- Extjs4中的Form之fieldset的使用
- C++ 运算符重载
- java排序之一插入排序(一个方法同时给整型和字符串排序)
- Binder框架
- 项目管理--工欲善其事,必先利其器
- poj 2187 旋转卡壳求最远点对的平方
- XML 与 DataSet 互转
- SAP HANA 2. SAP HANA Studio使用insufficient privilege 问题
- Android Dialog 全屏
- 一位女程序员的奋斗路程
- Jquery easyui tree 一些常见操作