`
java--hhf
  • 浏览: 308502 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

数组的排序的五种基本方法

阅读更多
 
package hhf.Sort_1012;
 
import java.util.Random;
 
/**
 * Maopao_Array
 * @author HHF
 * 2012-10-13 
 */
public class Sort {
 
static int n = 1;
/**
* @param args
*/
//主函数的编写 
//主函数内 我们应该尽量简洁,一般不提倡在主函数里定义方法,一般提倡在主函数里声明使用方法
public static void main(String[] args) {
// TODO Auto-generated method stub
 
//创建一个输入对象
java.util.Scanner sc = new java.util.Scanner(System.in);
while(true){
System.out.println("请输入你要选择的排序方法(输入下面排序方法的序号)\n " +
"1.冒泡排序\n" +
"2.选择排序\n" +
"3.插入排序\n" +
"4.shell排序\n");
//调用nextint的方法接收输入值
n = sc.nextInt();
 
//定义一个长度为十的int数组
int [] array = new int[6];
//初始化数组
init_array(array);
//打印数组
System.out.println("原始数组是:");
print_array(array);
//开始排序
System.out.println("正在排序中:");
 
switch(n){
case 1: maopao_array(array);
break;
case 2: xuanze_array(array);
break;
case 3: charu_array(array);
break;
case 4: shell_array(array);
break;
default: 
System.out.println("没有这个排序方法  —— 你,你怎么可以乱输入呢,,,?");
 
}
 
 
//打印数组
System.out.println("排序后的数组是:");
print_array(array);
System.out.println();
System.out.println();
System.out.println();
System.out.println();
 
}
}
/*
 * 初始化数组函数的实现
 */
public static void init_array(int [] array){
//一个循环 遍历数组元素赋值
for(int i = 0; i < array.length; i++){
//定义一个随机数对象,让它产生随机数赋值给数组元素
Random ran = new Random();
array[i] = ran.nextInt(101);
 
}
}
/*
 * 打印数组的函数实现
 */
public static void print_array(int [] array){
//一个for循环遍历数组元素 并一一打印出来(注意每个元素之间的间隔)
for(int i = 0; i < array.length; i++){
 
System.out.print(array[i]);
System.out.print("\t");
 
}
System.out.println();
 
}
/*
 * 冒泡排序函数实现
 */
public static void maopao_array(int [] array){
//两个循环保证每一个都平等的对待了
for(int i = 0; i < array.length; i++)
for(int j = i + 1; j < array.length; j++)
//交换值 的一个简单算法
if(array[i] > array[j]){
array[i] = array[i] + array[j];
array[j] = array[i] - array[j];
array[i] = array[i] - array[j];
print_array(array);
}
//某些时候可以考虑在这个地方加上这么一句
//print_array(array);
 
}
 
public static void xuanze_array(int [] array){
//两个循环保证每一个都平等的对待了
for(int i = 0; i < array.length; i++){
int mix = i;
for(int j = i + 1; j < array.length; j++)
//交换值 的一个简单算法
if(array[mix] > array[j])
mix = j;
//此时得到的mix就是本次循环得到的最小值的下标
int temp = array[i];
array[i] = array[mix];
array[mix] = temp;
print_array(array);
 
}
}
public static void charu_array(int [] array){
//两个循环保证每一个都平等的对待了
for(int i = 1; i < array.length; i++)
for(int j = i; j > 0; j--)
//交换值 的一个简单算法
if(array[j] < array[j-1]){
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
print_array(array);
}
//某些时候可以考虑在这个地方加上这么一句
//print_array(array);
}
 
public static void shell_array(int [] array){
for( int increment = array.length / 2 ; increment > 0 ;increment /= 2 )
for(int i = increment; i < array.length; i++){
int temp = array[i];
int j = 0;
for(j = i; j >= increment; j-=increment)
if(temp < array[j-increment]){
array[j] = array[j - increment];
}else 
break;
array[j] = temp;
print_array(array);
}
//print_array(array);
 
}
}
 

 

3
3
分享到:
评论

相关推荐

    C#实现对二维数组排序的方法

    总结来说,本文介绍的C#实现二维数组排序的方法,通过将二维数组转换为`DataTable`并利用其内置的排序功能,提供了一种灵活且高效的解决方案。这种方法不仅适用于各种数据类型,而且保持了原始数组的引用,使得排序...

    易语言自定义数据类型数组排序

    本话题聚焦于“易语言自定义数据类型数组排序”,将深入探讨如何在易语言中创建、操作自定义数据类型数组,并实现各种排序算法,如根据产地、类别和售价等属性进行排序。 自定义数据类型在易语言中允许我们定义包含...

    编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。

    这个项目的目标是创建一个一维数组排序程序,它具有灵活性,能够处理不同来源的数据,并提供三种经典的排序算法供用户选择:冒泡排序、选择排序和插入排序。下面我们将详细探讨这些知识点。 **一、一维数组** 一维...

    数组的几种排序方法

    然后对剩下的元素重复这个过程,直到整个数组排序完成。 ### 选择排序 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。以下...

    LabVIEW二维数组排序.rar

    总结来说,LabVIEW中的二维数组排序涉及理解二维数组的结构,掌握各种排序方法,包括按行、按列及自定义排序,以及处理数据类型转换和性能优化。熟练掌握这些技能将使你在LabVIEW编程中游刃有余,处理各种数据处理...

    c语言的基本算法 数组排序

    数组排序算法在C语言中有着广泛的应用,不仅限于上述的几种方法。其他常见的排序算法还包括冒泡排序、插入排序、快速排序、归并排序等,每种都有其适用的场景和优缺点。在实际编程中,根据数据规模、稳定性、空间...

    Java数组排序三种方法

    ### Java数组排序三种方法 #### 一、类排序方法(使用`Arrays.sort()`) 在Java中,`java.util.Arrays`类提供了一系列实用的方法来处理数组。其中,`sort()`方法可以方便地对数组进行排序。 **特点:** - **简单...

    用VS2010 C# 数组排序 方法

    本文将深入探讨在Visual Studio 2010环境下使用C#语言进行数组排序的方法,这不仅是初学者理解基本算法概念的良好起点,也是资深开发者优化代码性能的实践指南。 ### 知识点一:C#中的数组定义 在C#中,数组是一种...

    oc中数组排序

    数组排序是编程中常见的操作,特别是在处理数据时。本篇将深入探讨OC中数组的排序方法,以及如何通过实践来复习这个重要概念。 一、NSArray与NSMutableArray 在Objective-C中,数组分为不可变类型NSArray和可变...

    VB070-数组排序 源代码

    在编程领域,数组排序是一个非常基础且重要的概念,尤其在Visual Basic (VB)中,它在数据处理和算法实现上扮演着关键角色。本资源"VB070-数组排序 源代码"提供了一组关于如何在VB环境中对数组进行排序的源代码示例,...

    数组排序知识代码(c#)

    数组排序的方法有很多种,包括但不限于冒泡排序、选择排序、插入排序、快速排序、归并排序以及C#框架提供的`Array.Sort()`方法。 **插入排序**是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未...

    .net属性数组排序.rar

    在.NET框架中,属性数组排序是一项常见的操作,特别是在ASP.NET开发中。这涉及到对对象集合进行排序,这些对象具有特定的属性,我们希望通过这些属性值来确定集合中的顺序。本篇将深入探讨如何使用.NET Framework...

    iOS模型数组排序

    在iOS开发中,数据模型数组的排序是一个常见的需求,特别是在显示列表或表格视图时。`sortedArrayUsingComparator`是Objective-C中`NSArray`类的一个方法,用于对数组中的对象进行自定义排序。这个方法非常强大,...

    Matlab数组排序详解docx文档下载

    在MATLAB中,数组排序是数据处理和分析过程中的常见操作。`sort`函数是MATLAB提供的一种方便的工具,可以对各种类型的数组进行升序或降序排序。以下是对`sort`函数的详细说明: 1. **基本用法**: `B = sort(A)` ...

    flex 数组排序

    ### Flex 数组排序知识点 #### 一、简介 在Flex开发中,经常需要对数组进行排序,特别是当处理复杂的二维数组或对象数组时。本文将详细介绍如何使用Flex中的`sortOn`方法对数组进行排序,并给出具体的代码示例。 ...

    二维数组排序

    该程序实现了基于冒泡排序原理的二维数组排序方法: 1. **定义冒泡排序方法**:`public static void sort1(int[][] a)`。 2. **内部排序方法**:`private static void sort11(int x[][], int startRow, int rowNum,...

    二维数组如何进行冒泡排序

    ### 二维数组冒泡排序详解 #### 一、引言 冒泡排序是一种简单的排序算法,在数据处理领域有着广泛的应用。对于一维数组而言,冒泡排序实现起来...希望本文能够帮助初学者更好地理解二维数组排序的原理和实现细节。

    c++数组排序

    在IT行业中,数组排序是基础且重要的编程技能之一,尤其在C++中。数组作为一种基本的数据结构,常常需要进行各种排序操作,以便于数据分析、处理和查找。本篇将深入探讨几种经典排序算法,这些算法不仅理论性强,...

    asp数组 排序

    本篇将详细讲解如何在ASP中实现这两种类型的数组排序。 ### 一维数组排序 1. **基本概念**:一维数组就像一条线,每个元素都有一个唯一的索引,通常从0或1开始。 2. **内置函数**:ASP内建的`Array`函数可以创建...

Global site tag (gtag.js) - Google Analytics