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); } }
相关推荐
數組排序——内部排序之冒泡排序數組排序——内部排序之冒泡排序
c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言的基本算法c语言...
该文档涵盖了数组排序的基本概念,包括如何实现各种排序算法,如冒泡排序、选择排序、插入排序、归并排序和快速排序。此外,文档还为每个排序算法提供了详细的代码示例和实现细节。 该文档还涵盖了高级主题,如如何...
主要介绍了Perl基本数组排序方法介绍,本文讲解基于ASCII码排序、比较函数、按字母顺序排列、Perl对数值排序等内容,需要的朋友可以参考下
数组是C语言学习过程中最基本的操作,这个代码给了另一种数组排序的方法,与C语言中讲的不同。
java数组的基本操作 查找最大元素 选择排序 优化选择排序 冒泡排序 交换数组元素
二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归。 实例代码: <?php class Bubble { private function __construct() { } ...
在javascript中实现多维数组、对象数组排序,基本上都是用原生的sort()方法,用于对数组的元素进行排序。 其基本的用法就不说了,先看个简单的排序例子: //Sort alphabetically and ascending: var myarray=["Bob...
在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序。 今天,就数组的 sort 方法来学习一下,避免日后踩坑的悲惨遭遇。 sort 方法用于对数组的元素进行排序。 ...
三、数组的五种赋值方法和使用方法 声明数组 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数组排序、降序的排序问题。sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新...
本文实例讲述了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} 分别...
1)数组的基本操作,包括创建数组,填充数组,访问数组,拷贝数组,数组排序,数组查找。 2)编写一个猜密码的小程序,规则如下:程序首先产生一个三位数的密码,例如“025”,用户每次输入一个四位数来猜密码,程序...
3.冒泡法排序基本思想: 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。...
Java的数组是一种常用的数据结构,用于存储和操作一组相同类型的元素。本文将介绍Java数组的常见操作和用法,包括数组的声明、创建、初始化、访问、遍历等。我们还会讨论数组的长度、数组的最大值和最小值、数组的...
8种基本排序,最int数组进行排序,具体排序算法:https://blog.csdn.net/github_37412255/article/details/54731005