import java.util.Arrays;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class SequenceTest{
String [] arrs={"m","q","c","d","2","奶","7","a","茶","8","5","v","c","d","2","茶","q","8"};
@Before
public void setUp() throws Exception {
System.out.println("排序前:"+Arrays.asList(arrs));
}
@After
public void tearDown() throws Exception {
System.out.println("排序后:"+Arrays.asList(arrs));
}
/**
* 冒泡排序算法
*/
@Test
public void testBubbleSeq(){
Long startTime=System.currentTimeMillis();
for(int j=1;j<arrs.length;j++){
for(int i=0;i<arrs.length-j;i++){
//比较交换相邻元素
if(arrs[i].toString().compareTo(arrs[i+1].toString())>0){
String temp;
temp=arrs[i];
arrs[i]=arrs[i+1];
arrs[i+1]=temp;
}
}
}
Long endTime=System.currentTimeMillis();
System.out.println("排序用时:"+(endTime-startTime));
}
/**
* 选择排序算法
*/
@Test
public void testSelectSeq(){
Long startTime=System.currentTimeMillis();
int min_index;
for(int i=0;i<arrs.length-1;i++){
min_index=i;
//每次扫描选择最小项
for(int j=i+1;j<arrs.length;j++){
if(arrs[j].compareTo(arrs[min_index])<0){
min_index=j;
}
//找到了最小项后交换位置
if(min_index!=i){
String temp;
temp=arrs[i];
arrs[i]=arrs[min_index];
arrs[min_index]=temp;
}
}
}
Long endTime=System.currentTimeMillis();
System.out.println("排序用时:"+(endTime-startTime));
}
/**
* 插入排序算法
*/
@Test
public void testInsertSeq(){
Long startTime=System.currentTimeMillis();
//从第二个位置开始循环
for(int i=1;i<arrs.length;i++){
//将元素暂存在temp中
String temp=arrs[i];
int j=i-1;
//将temp和已经排序的元素比较,找出适合插入的位置
while(j>=0 && arrs[j].compareTo(temp)>0){
arrs[j+1]=arrs[j];
j--;
}
arrs[j+1]=temp;
}
Long endTime=System.currentTimeMillis();
System.out.println("排序用时:"+(endTime-startTime));
}
}
面试常见的排序算法
最新推荐文章于 2024-07-15 10:54:52 发布