public static void insertionSort(int[] arr){
int j;
for(int p = 1; parr.length; p++){
int temp = arr[p];//保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p; j0temp arr[j-1]; j--){
arr[j] = arr[j-1];
}
//正确的位置设置成保存的数据
arr[j] = temp;
}
}
4.希尔排序
主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长 , 当步长为1的时候完成一次插入排序,希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
public static void shellSort(int[] arr){
int j ;
for(int gap = arr.length/2; gap0 ; gap/=2){
for(int i = gap; iarr.length; i++){
int temp = arr[i];
for(j = i; j=gaptemparr[j-gap]; j-=gap){
arr[j] = arr[j-gap];
}
arr[j] = temp;
}
}
}
求助大神~~~java按时间顺序,读取文件夹下的所有文件(时间最早的先读?。?就是最老的那个)/**
* @param args
*/
public static void main(String[] args) {
String path = "d:\\test";
ListFile list = getFileSort(path);
for (File file : list) {
System.out.println(file.getName() + " : " + file.lastModified());
}
}
/**
* 获取目录下所有文件(按时间排序)
*
* @param path
* @return
*/
public static ListFile getFileSort(String path) {
ListFile list = getFiles(path, new ArrayListFile());
if (list != nulllist.size()0) {
Collections.sort(list, new ComparatorFile() {
public int compare(File file, File newFile) {
if (file.lastModified()newFile.lastModified()) {
return 1;
} else if (file.lastModified() == newFile.lastModified()) {
return 0;
} else {
return -1;
}
}
});
}
return list;
}
/**
*
* 获取目录下所有文件
*
* @param realpath
* @param files
* @return
*/
public static ListFile getFiles(String realpath, ListFile files) {
File realFile = new File(realpath);
if (realFile.isDirectory()) {
File[] subfiles = realFile.listFiles();
for (File file : subfiles) {
if (file.isDirectory()) {
getFiles(file.getAbsolutePath(), files);
} else {
files.add(file);
}
}
}
return files;
}
JAVA 日期排序前提,假设你使用一个数组来保存一组开始时间+结束时间 , 当然,你也可以用其它的数据结构 。
基本思路,1转换为Date型,2使用Calendar类来比较两个日期 , 3 自己实现compare方法:
各部分的例子:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
Date startDate1 = simpleDateFormat.parse("2018年3月18日");
Date startDate2 = simpleDateFormat.parse("2018年3月12日");
private void sort(ListDate dataList){
Collections.sort(dataList, new ComparatorDate() {
@Override
public int compare(Date o1, Date o2) {
if(d1 != nulld2 != null){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(o1);
c2.setTime(o2);
return c1.After(c2);
}else{
return -1;
}
}
});
}
大概写了下,具体你自己调调,还要注意异常处理 。
关于按时间排序java源代码和java date排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- thinkphpincludephp文件,thinkphp 入口文件
- 地平线3服务器,地平线3服务器目前无法使用,请稍后再试
- 丧尸片角色扮演游戏,角色扮演丧尸手游
- linux怎么用命令编辑 linux命令行编辑
- postgresql函数参数数组,post请求参数数组
- 网络游戏打汉尼拔,汉尼拔 桌游
- 用了几年路由器会发生什么,用了八年的路由器
- go语言学习资源整理 go语言教程
- chatgpt对英语专业,chatGPT对英语专业影响