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));
}
}
分享到:
相关推荐
常见排序算法java实现,包括快速排序,归并排序,堆排序三个常用nlogn复杂度的算法
c语言实现笔试or面试中常见排序算法,助你轻松搞定一般笔试晋级
IT常见的面试题目,各种排序算法的Java代码实现,内部有代码和详细的注释信息。
常见:排序算法相关面试题1
2. 冒泡排序 3. 1~100共一百个自然数,放入一个只有99个元素的数组中,找出没有被放入数组的这个数; 4. 字符串的反转输出 5. 截取字符串, 如果该字符串是“abc我的”,当截取的字节数是3时候就是"abc',如果是4,...
排序是本人写的,有word文档形式,也有源代码,注解清晰,保你十分钟搞定各种排序。
自己整理的八大排序算法的实现以及其各自的特点,希望能帮助需要的人
包含了四种常见的排序算法,是招聘面试时常出的题目,最好自己编译跑一遍
it面试算法题整理 全 包括笔试面试常考的 剑指offer 程序员面试宝典 各种排序算法等 自己总结的 自己总结的 找工作笔试面试用
主要介绍了C#常见算法面试题,包含了常见的排序、字符串操作、类的操作等技巧,需要的朋友可以参考下
本文实例讲述了Python八大常见排序算法定义、实现及时间消耗效率分析。分享给大家供大家参考,具体如下: 昨晚上开始总结了一下常见的几种排序算法,由于之前我已经写了好几篇排序的算法的相关博文了现在总结一下的...
使用 python 实现十种最常见的排序算法:选择排序、冒泡排序、插入排序、归并排序、桶排序、计数排序、基数排序、(随机)快速排序、希尔排序和堆排序算法。 适用于数据结构与算法的学习过程中,也是面试过程中常被...
排序等常见算法.pdf
排序 查找 队列 栈 链表等的C语言简单实现
用JavaScript实现的常见排序算法和数据结构的交互式概述。 还包括其他一些算法挑战,类似于编程采访中提出的挑战。 这旨在帮助您在准备面试时掌握计算机科学的基础知识,算法和解决问题的技能! 这仅作为参考/评论-...
面试时的Java数据结构与算法 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代 码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离 其宗,只要熟悉了...
摘要:面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。 在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在...
主要介绍了JS前端面试基本排序算法原理与实现方法,结合实例形式详细分析了JS常见的基本排序算法相关原理、实现方法、时间复杂度及操作注意事项,需要的朋友可以参考下
课程内容涵盖了排序算法、查找算法、图算法等多个领域,以及面试常见算法题的解析与实现。通过实践项目和练习,你将提升自己的编程能力和解决问题的能力。无论你是初学者还是有一定编程经验的人,本课程都能帮助你更...
排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界...