`

数据结构与算法之排序

 
阅读更多
(1)冒泡排序

package ChapterOne;

public class Bubble {

public static void main(String[] args) {
Bubble b = new Bubble();
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
b.bubble();
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
                  System.exit(0);
}
/**
* 冒泡排序
*/
public void bubble(){
for(int i = arr.length-1;i > 1;i--){
for(int j = 0;j < i;j++){
if(arr[j] > arr[j+1])
swap(j,j+1);
}
}
}
/**
* 交换数组中的两个数
* @param one
* @param two
*/
public void swap(int one,int two){
long temp = arr[one];
arr[one] = arr[two];
arr[two] = temp;
}

static long arr[] = new long[20];
/**
* 随机初始化一个长度为20的数组
*/
static{
for(int i = 0;i < arr.length;i++){
arr[i] = (long) (Math.random()*100);
}
}
}

(2)选择排序

package ChapterOne;

public class SelectSort {
/**
* 初始化一个长度为size的数组
* @param size
*/
public SelectSort(int size){
arr = new long[size];
for(int i = 0;i < size;i++){
arr[i] = (long) (Math.random()*100);
}
}
/**
* 选择排序
* @return
*/
public long[] sort(){
for(int i = 0;i < arr.length;i++){
int minIndex = findMin(i);
long min = arr[minIndex];
//子数组中的所有的数后移一个位置
for(int j = minIndex;j > 0;j--)
arr[j] = arr[j-1];
//把最小的数插入到最前端
arr[0] = min;
}
return arr;
}
/**
* 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
* @param start
* @return
*/
public int findMin(int start){
int min = start;
for(int i = min;i < arr.length;i++)
if(arr[min] > arr[i])
min = i;
return min;
}

public static void main(String[] args) {
SelectSort ss = new SelectSort(10);
ss.print();
long oa[] = ss.sort();
for(int i = 0;i < oa.length;i++)
System.out.print(oa[i]+" ");
System.out.println();
System.exit(0);
}
public void print(){
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}

long arr[];
}
分享到:
评论

相关推荐

    数据结构与算法之排序大全

    "数据结构与算法之排序大全"这个主题涵盖了排序算法的深度解析和实践,旨在帮助读者全面理解各种排序方法及其优劣。在这个压缩包中,包含了两份文档,分别是"九种排序的源代码——郑越洋71104233.doc"和"关于排序的...

    数据结构与算法 数据结构与算法课后习题答案

    数据结构与算法是计算机科学的基础,它涉及到如何有效地组织和管理数据,以便进行高效地查找、存储和处理。本资源包含的数据结构与算法课后习题答案,是学习这一领域的重要辅助材料,可以帮助学生深入理解和巩固所学...

    JS数据结构与算法.pdf

    JS 数据结构与算法.pdf 本书主要介绍了 JavaScript 语言的基础知识,包括数据结构和算法。以下是该书的详细知识点: 一、JavaScript 基础知识 * 变量和数据类型 * 运算符和控制结构 * 函数和对象 * 数组和字符串 ...

    数据结构与算法分析--C语言描述_数据结构与算法_

    数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...

    java数据结构与算法.pdf

    在编程领域,数据结构与算法是核心组成部分,它们直接影响到程序的效率和性能。Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点...

    武汉大学 C#数据结构与算法

    5. **课程内容**:可能包括基础数据结构的实现、算法设计与分析、复杂度理论、高级数据结构(如堆、B树等)、图算法、排序与查找算法的C#实现、动态规划和贪心策略等。 6. **学习资源**:“C#数据结构与算法_武汉...

    c语言 数据结构 快速排序算法

    c语言版本的数据结构的快速排序算法,适用于新手学习

    数据结构与算法分析—c语言描述

    《数据结构与算法分析—C语言描述》是一本深度探讨数据结构和算法的书籍,它以C语言作为实现工具,为读者提供了丰富的编程实践指导。这本书涵盖了数据结构的基础理论、设计方法以及C语言的实现技巧,是计算机科学...

    数据结构与算法 课后答案

    以下是对标题“数据结构与算法 课后答案”以及描述“数据结构与算法(C++版)参考答案、 数据结构、算法”的详细解释和相关知识点的阐述。 首先,我们来谈谈数据结构。数据结构是组织、存储和管理数据的方式,它...

    数据结构排序算法

    数据结构排序算法

    数据结构与算法 Java版

    数据结构与算法是计算机科学的基础,对于任何编程语言来说,理解和掌握它们都是至关重要的,特别是对于Java这样的高级语言。在Java中实现数据结构和算法,能够帮助开发者更高效地解决问题,提升程序性能。 数据结构...

    数据结构与算法教程

    “数据结构与算法教程”一书由章炯民等编著,由华东师范大学出版社出版,是面向高校计算机专业本科生的基础教材之一。本书遵循《中国计算机科学与技术学科教程(2002)》的教学要求,旨在帮助学生掌握最重要的数据...

    C++数据结构与算法 (第4版)

    通过以上内容可以看出,《C++数据结构与算法(第4版)》这本书旨在全面介绍数据结构的基本概念、常用的数据结构类型、典型排序和查找算法,以及算法设计与分析的方法和技术。这些知识点对于学习计算机科学和编程语言...

    Java数据结构与算法第二版源代码

    《Java数据结构与算法第二版源代码》是一个深入学习Java编程和算法的重要资源,它包含了丰富的实例和程序,旨在帮助开发者提升对数据结构和算法的理解与应用能力。在这个压缩包中,有两个主要的子文件:...

    数据结构学习笔记排序算法:基数排序

    数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数...

    数据结构与算法分析C++描述(附源码)

    数据结构与算法分析是计算机科学中的核心课程,它关乎如何高效地存储和处理数据,以及设计和实现高效的计算过程。C++作为一种强大的编程语言,常用于实现这些数据结构和算法,因为它提供了丰富的库支持和面向对象的...

    数据结构与算法 基础版 北航

    数据结构与算法是计算机科学的基础,对于任何想要深入理解编程和优化问题解决的人来说,都是必不可少的知识领域。北航推出的这本“数据结构与算法 基础版”教材,为初学者提供了一个全面且深入的学习资源。 数据...

Global site tag (gtag.js) - Google Analytics