①冒泡排序
public?static?void?bubbleSort(int[]?arr){
for(int?i?=0;?i?arr.length?-?1;?i++){
for(int?j=0;?j?arr.length-1;?j++){
if(arr[j]?arr[j+1]){
arr[j]?=?arr[j]^arr[j+1];
arr[j+1]?=?arr[j]^arr[j+1];
}
public?static?void?selectSort(int[]?arr){
for(int?i?=?0;?i?arr.length?-1;?i++){
for(int?j?=?i+1;?j?arr.length;?j++){
if(arr[j]?arr[i]){
arr[j]?=?arr[j]^arr[i];
arr[i]?=?arr[j]^arr[i];
public?static?void?insertionSort(int[]?arr){
int?j;
for(int?p?=?1;?p?arr.length;?p++){
int?temp?=?arr[p];?//保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p;?j0?temp?arr[j-1];?j--){
arr[j]?=?arr[j-1];
//正确的位置设置成保存的数据
arr[j]?=?temp;
public?static?void?shellSort(int[]?arr){
int?j?;
for(int?i?=?gap;?i?arr.length;?i++){
int?temp?=?arr[i];
for(j?=?i;?j=gap?temparr[j-gap];?j-=gap){
arr[j]?=?arr[j-gap];
快速排序:
package org.rut.util.algorithm.support;
import org.rut.util.algorithm.SortUtil;
/**
* @author treeroot
* @version 1.0
*/
public class QuickSort implements SortUtil.Sort{
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
public void sort(int[] data) {
quickSort(data,0,data.length-1);
private void quickSort(int[] data,int i,int j){
//swap
SortUtil.swap(data,pivotIndex,j);
int k=partition(data,i-1,j,data[j]);
SortUtil.swap(data,k,j);
if((k-i)1) quickSort(data,i,k-1);
if((j-k)1) quickSort(data,k+1,j);
* @param data
* @param i
* @param j
* @return
private int partition(int[] data, int l, int r,int pivot) {
do{
while(data[++l]pivot);
while((r!=0)data[--r]pivot);
SortUtil.swap(data,l,r);
while(lr);
return l;
改进后的快速排序:
public class ImprovedQuickSort implements SortUtil.Sort {
private static int THRESHOLD=10;
int[] stack=new int[MAX_STACK_SIZE];
int top=-1;
int pivot;
int pivotIndex,l,r;
stack[++top]=0;
stack[++top]=data.length-1;
while(top0){
int j=stack[top--];
int i=stack[top--];
pivot=data[pivotIndex];
//partition
l=i-1;
r=j;
while((r!=0)(data[--r]pivot));
SortUtil.swap(data,l,j);
if((l-i)THRESHOLD){
stack[++top]=i;
stack[++top]=l-1;
if((j-l)THRESHOLD){
stack[++top]=l+1;
stack[++top]=j;
//new InsertSort().sort(data);
insertSort(data);
private void insertSort(int[] data) {
int temp;
for(int i=1;idata.length;i++){
for(int j=i;(j0)(data[j]data[j-1]);j--){
SortUtil.swap(data,j,j-1);
课表数据时存储于数据库中的吗?
* 获取一周的时间集合(从周一到周日)
* @param weekNum ;-1:上周;0:本周;1:下周
public static ListDate getWeekDates(int weekNum){
ListDate list = new ArrayListDate();
Calendar cal = Calendar.getInstance();
// 获取指定下几个星期
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
list.add(cal.getTime());
cal.add(Calendar.DAY_OF_WEEK, 1);
return list;
这个是获取这一周时间的代码 ,之后用下面的代码获取周一到周日的日期
ListDate ds = DateUtil.getNowWeekDates(weekNum);
ds.get(0)//周一
用这两个时间到数据库中进行范围查询,之后的你应该明白了吧
public class IdUtil {
public static void main(String[] args) {
//七天的课程
//每天的课程名
week[0] = "语文,语文,语文,语文,语文,语文,语文,语文,语文,语文";
week[1] = "数学,数学,数学,数学,数学,数学,数学,数学,数学,数学";
//上课时间
System.out.print("\t"+"星期"+a);
System.out.println();
int b = 0;
for(int i=1;i11;i++){
switch (i) {
case 1:
System.out.println("上午");
break;
System.out.println("下午");
System.out.println("晚上");
System.out.print(time[i-1]+"\t");
System.out.print(week[j].split(",")[b]+"\t");
b++;
先简单的分析过程,然后贴出代码.
一:分析文件
关于排序还要注意分析文档,比如按照课程名排序,如果 课程名相同,那么 就按照成绩从低到高排列
文件信息末尾行 "0" 表示文档结束
二:关于排序的语法;
①.: 传统的排序语法, 可以使用匿名内部类, 但是显得比较繁琐,
源文件说明 运行Test.java 即可看到效果
以上就是土嘎嘎小编为大家整理的java排序课程表代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!