优化后的排序算法:
//TestNumberSort.java
public class TestNumberSort{
public static void main(String args[]) {
int a[] = new int[args.length];
for(int i = 0; i < args.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
print(a);
SelectionSort(a);
print(a);
/*
int a[];
a = new int[9];
a[0] = Integer.parseInteger(args[0]);
a[1] = Integer.parseInteger(args[1]);
a[2] = Integer.parseInteger(args[2]);
a[3] = Integer.parseInteger(args[3]);
a[4] = Integer.parseInteger(args[4]);
a[5] = Integer.parseInteger(args[5]);
a[6] = Integer.parseInteger(args[6]);
a[7] = Integer.parseInteger(args[7]);
a[8] = Integer.parseInteger(args[8]);
sort();
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
*/
}
/*
private static void SelectionSort(int a[]) {
for(int i = 0; i < a.length; i++)
for(int j=i+1; j<a.length; j++) {
if(a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
*/
private static void SelectionSort(int a[]) {
int k,temp;
for(int i = 0; i < a.length; i++) {
k = i;
for(int j = k; j<a.length; j++) {
if(a[j] < a[k]) {
k = j;
}
}
if( k != i) {
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
private static void print(int a[]) {
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
/*
public void sort() {
int i = 0;
int j;
for(j = i + 1; j < a.length; i++, j++) {
if(a[i] > a[j]) {
int temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
*/
}
小练习:
阅读下面的程序,任意初始化days数组,然后对days数组排序,再用折半查找法查找特定的Date对象day
//Test.java
public class Test {
public static void main(String args[]) {
Date[] days = new Date[10];
Date day = new Date(2004, 4, 6);
}
}
class Date {
int day,month,year;
Date(int y, int m, int y) {
this.year = y;
this.month = m;
this.day = d;
}
public int compare(Date date) {
return year > date.year ? 1
: year < date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1 : 0;
}
}
分享到:
相关推荐
数据结构练习(含答案):第五章数组和广义表 本资源摘要信息涵盖了数据结构中数组和广义表的相关知识点,包括数组的基本操作、数组的存储方式、稀疏矩阵的压缩存储方法、对称矩阵的存储方式等。 一、选择题 1. ...
计算机后端-Java-Java核心基础-第08章 数组 05. 二维数组练习:基本操作.avi
本章主要探讨了数组,特别是字符串以及类库的使用。 一、数组 1. 一维数组 - 定义与创建: - 方式一:先声明数组变量,再创建数组对象。如 `int a[];` 后跟 `a = new int[3];` - 方式二:同时定义并创建数组,...
在VB.NET编程中,数组是一种数据结构,它允许程序员存储同一类型的数据集合。数组提供了高效访问和操作一组数据的方式,而无需为每个元素创建独立的...记得练习编写不同类型的数组程序,以提高对数组操作的熟练程度。
该函数在数组`a[]`中查找连续五个元素均为奇数的情况,如果找到则选取其中最小的元素,并将这些最小元素存入`b[]`数组中,然后对该数组进行升序排序。 **解题思路**: - 遍历数组,检查每五个元素是否都是奇数。 - ...
本文档提供了五个C++字符数组练习题的解答,涵盖了字符串比较、字符串首尾互换、数字字符统计、字符串排序和删除指定字符等多个方面。这些问题可以帮助读者更好地掌握C++语言中的字符串处理和数组操作。 第 1 题:...
在本“第六章数组作业题”中,我们可以推测这是针对编程课程中关于数组部分的一次作业或练习,可能是C语言课程。从提供的文件名来看,我们有两个文件:一个源代码文件(张明辉数组作业.c)和一个可能包含问题解答或...
《C++ Primer》第五版是学习C++的权威指南,其中第三章详细介绍了这两个主题。本章旨在帮助读者理解和掌握如何在C++中有效地操作字符串和数组,以及它们在实际编程中的应用。 字符串在C++中被定义为字符的序列,它...
### C语言数组编程练习知识点详解 #### 知识点一:Fibonacci 数列的生成与打印 **题目概述:** 本题目要求使用C语言编写程序来生成并打印Fibonacci数列的前15项。 **代码解析:** 1. **初始化数组:** 使用整型...
在计算机科学中,数组和广义表是两种重要的数据结构,它们被广泛应用于各种算法和程序设计中。数组提供了一种高效的方式来存储和访问数据,而广义表则是一种更灵活的数据表示方式,可以用来处理复杂的数据关系。 ...
1. 对于一个二维数组A[6×8],每个元素占用6个字节,如果起始地址是1000,那么数组的总存储量(体积)可以通过计算元素数量乘以每个元素的大小得到,即6×8=48个元素,48个元素乘以6字节/元素等于288字节。...
提供的视频文件01_一维数组内存分析.avi可能详细解释了数组在内存中的存储方式,02_数组元素的创建和使用.avi则演示了数组的创建和元素操作,03_练习_1.avi、04_练习_2.avi和05_练习_3.avi可能是针对数组操作的实践...
《J2SE 5.0 第05章:数组3》是Java编程学习的重要章节,主要探讨了数组这一核心概念的深入应用。在Java中,数组是一种存储同一类型数据的集合,可以是一维、二维甚至是多维的。在这个章节中,我们将重点关注二维数组...
自考数据结构第五章重点探讨了多维数组这一重要概念。多维数组是数组的一种扩展形式,它能够帮助我们处理二维或更高维度的数据,比如矩阵、图像等。在本章节中,我们将深入理解多维数组的定义、特性、存储方式以及...
本资源摘要信息是关于数组和字符串的练习题,共15道选择题,涵盖了数组和字符串的基本概念、数组下标、数组初始化、数组元素访问、字符串数组、数组拷贝等知识点。 一、数组基本概念 * 数组是一种数据结构,用于...
数组是一种常见的线性数据结构,用于存储一系列相同类型的数据。广义表则是线性表的一种推广,它不仅可以包含原子(单个数据项),还可以包含子表,使得数据结构更加复杂和灵活。 1. 数组与线性表的差异: - ...
数组练习题总结 数组是一种基本的数据结构,广泛应用于各种编程语言中。在 Java 中,数组是用于存储一组相同类型的元素的集合。下面是数组练习题的总结: 1. 排序算法 在数组练习题中,我们遇到了排序算法的应用...
《深入理解Java SE 5.0 第五章:数组2》 数组是Java编程语言中的基本数据结构之一,它在程序设计中起着至关重要的作用。本章将深入探讨Java SE 5.0中关于数组的高级特性和使用技巧,包括多维数组、数组作为方法参数...
要获取特定位置的元素,如第五行第四列,可以使用“索引到数组元素”函数。给定行和列的索引,它将返回对应位置的值。 **五、截取子数组** 截取数组的一部分,可以使用“切片”或“子数组”函数。对于3行2列的子...