`
java--hhf
  • 浏览: 305796 次
  • 性别: 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
分享到:
评论

相关推荐

    数组排序的基本介绍.go

    數組排序——内部排序之冒泡排序數組排序——内部排序之冒泡排序

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

    c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言...

    [Java算法设计]-数组排序.java

    该文档涵盖了数组排序的基本概念,包括如何实现各种排序算法,如冒泡排序、选择排序、插入排序、归并排序和快速排序。此外,文档还为每个排序算法提供了详细的代码示例和实现细节。 该文档还涵盖了高级主题,如如何...

    Perl基本数组排序方法介绍

    主要介绍了Perl基本数组排序方法介绍,本文讲解基于ASCII码排序、比较函数、按字母顺序排列、Perl对数值排序等内容,需要的朋友可以参考下

    数组排序的相关知识技巧

    数组是C语言学习过程中最基本的操作,这个代码给了另一种数组排序的方法,与C语言中讲的不同。

    数组的基本操作

    java数组的基本操作 查找最大元素 选择排序 优化选择排序 冒泡排序 交换数组元素

    php 二维数组快速排序算法的实现代码

    二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归。 实例代码: &lt;?php class Bubble { private function __construct() { } ...

    JavaScript对象数组排序实例方法浅析

    在javascript中实现多维数组、对象数组排序,基本上都是用原生的sort()方法,用于对数组的元素进行排序。 其基本的用法就不说了,先看个简单的排序例子: //Sort alphabetically and ascending: var myarray=["Bob...

    【JavaScript源代码】JavaScript中数组sort()方法的基本使用与踩坑记录.docx

     在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序。 今天,就数组的 sort 方法来学习一下,避免日后踩坑的悲惨遭遇。 sort 方法用于对数组的元素进行排序。 ...

    JavaSE 基础 数组.pdf

    三、数组的五种赋值方法和使用方法 声明数组 int[] arr; //开辟三个空间 arr = new int[3]; //向数组中赋值,0、1、2是下标 arr[0] = 30; arr[1] = 97; arr[2] = 65; 声明数组并且分配空间 int[] arr = new ...

    对数字型数组进行从小到大排序

    基本算法quicksort来对int型arr进行从小到大的排序。。

    数组操作:创建、插入、排序、删除

    用结构体创建一个数组,对数组进行了基本的操作,包括数组的插入、删除、排序、求长度等

    PHP 数组排序方法总结 推荐收藏

    首先接触的就是PHP数组排序、降序的排序问题。sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新...

    PHP常见数组排序方法小结

    本文实例讲述了PHP常见数组排序方法。 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被...

    各种排序方法的基本操作 选择排序

    选择排序 ss_sort(int e[],int n) 直接插入排序 ss_sort(int e[],int n) 冒泡排序 sb_sort(int e[],int n) 二路合并排序 Merge(int e[],int n) 对给定的数组E[N]={213,111,222,77,400,300,987,1024,632,555} 分别...

    数组与字符串.docx

    1)数组的基本操作,包括创建数组,填充数组,访问数组,拷贝数组,数组排序,数组查找。 2)编写一个猜密码的小程序,规则如下:程序首先产生一个三位数的密码,例如“025”,用户每次输入一个四位数来猜密码,程序...

    几种常见的排序方法

    3.冒泡法排序基本思想: 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。...

    面试题涵盖Java数组常见操作和用法

    Java的数组是一种常用的数据结构,用于存储和操作一组相同类型的元素。本文将介绍Java数组的常见操作和用法,包括数组的声明、创建、初始化、访问、遍历等。我们还会讨论数组的长度、数组的最大值和最小值、数组的...

    8种基本排序

    8种基本排序,最int数组进行排序,具体排序算法:https://blog.csdn.net/github_37412255/article/details/54731005

Global site tag (gtag.js) - Google Analytics