首先创建一个长度是5的数组,并填充随机数。首先用选择法正排序,然后再对其使用冒泡法倒排序

public class Test17 {
	public static void main(String[] args) {
		int []arr = new int[5];
		for (int x = 1; x < 100; x++) {

			Random r = new Random();
			arr[0] = r.nextInt(x);
			arr[1] = r.nextInt(x);
			arr[2] = r.nextInt(x);
			arr[3] = r.nextInt(x);
			arr[4] = r.nextInt(x);

		}
		printArray(arr);
		maopaoSort(arr);
		System.out.println("\n");
		printArray(arr);
		selectSort(arr);
		System.out.println("\n");
		printArray(arr);

	}
	private static void selectSort(int[] arr) {
		for (int i = 0; i < arr.length-1; i++) {
			for (int j = i+1; j < arr.length; j++) {
				if(arr[i]>arr[j])
					swap(arr,i,j);
			}
		}

	}
	private static void maopaoSort(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length-1; j++) {
				if(arr[j]>arr[j+1])
					swap(arr,j,j+1);
			}
		}

	}
	private static void swap(int[] arr, int i, int j) {
		int temp = arr[i];
		arr[i]=arr[j];
		arr[j]=temp;

	}
	public static void printArray(int []arr){
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
	}

}

  

时间: 2024-12-18 01:59:14

首先创建一个长度是5的数组,并填充随机数。首先用选择法正排序,然后再对其使用冒泡法倒排序的相关文章

不使用循环,如何创建一个长度为100的数组

前言: 问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 这是一个比较经典的前端面试题,也可以当笔试题,咋一看,好像难度不大,实际上考察的知识点还不少,值得写篇文章来备忘!废话不多说,直接进入正文! 正文: 为了理解这道题的意思,我们先用传统的方法来实现一下: 使用for方法: var arr = new Array(100); for(var i=0;i<arr.length;i++){ arr[i] = i; } console.log(a

奇妙JS代码系列(三)一道有趣的题(创建一个长度为x数组)

原题描述: 不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标 这个问题的一些变种例如给一个长度length和value,返回长度为length值全为value的数组等. 误区 最容易掉入陷阱的: var arr = new Array(100); arr = arr.map(function(item, index) { return index; }); 如果你的答案是这个,恭喜你成功掉入出题人的坑了. 解释 坑在Array(100),可以看看MDN的规范, new

一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法. 今天有空写了一下.代码如下,注释比较详细: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Text.RegularExpressions; 6 7 namespace TestNumber 8 { 9 cl

面试题 一个长度为100的数组,随机插入1-100,不重复,写出大致思路即可;

之前回答的是: 定义一个长度为100的a数组,存1-100,每次从数组里随机的位置取一个元素,放入b数组,并且从a数组移除: 后来百度了一下,说是数组重新排列不够好,更好的做法是 每次将随机取到的数与数组 "最后一位" 交换: 想想还是有点道理,不用重新排列,而且不需要两个数组 <script> function fn(n) { var arr = []; for (var i = 0; i < n + 1; i++) { arr[i] = i + 1; } for

给定一个长度为N的数组,找出出现次数大于n/2,n/3的数,要求时间复杂度O(n),空间复杂度O(1)

先讨论出现次数大于n/2的数字,如果这样的数字存在,那么这个数出现的次数大于其他数出现的次数的总和. 在数组A中,我们定义两个数据集合a1,a2.a1为出现次数大于n/2的数的集合,a2为其余数组成的集合.对于数组 A中元素a.b,假设a不等于b,那么有两种情况,分别为:a属于a1,b属于a2:a属于a2,b属于a2.对于这两种情况,如 果把a.b从数组A中去掉,集合a1的size依旧是大于a2的.按照这个思路,我们有如下代码: int m; int count = 0; for (auto n

用最小的空间复杂度找出一个长度为n的数组且数据中的元素是[0,n-1]中任一个重复的数据。

比如:[1, 2, 3, 3, 2, 2, 6, 7, 8, 9] 中 2 or 3 分析:这道题目,实现比较容易,方法也不少,但要用最小的空间复杂度来看的话, 和充分考虑一下数据的下标和数据元素值的特点,比如如果把第 i 个位置放的值是 i,不是的情况做交换,去循环对比. 时间复杂度O(n),空间复杂度可到常量级 测试代码如下: public static void main(String[] args) { int n=10; List<Integer> list = new ArrayL

如何自定义一个长度可变数组

摘要:本文主要写了如何自定义一个长度可变数组 数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式 在定义之初,数组的长度就被定义 新建数组有很多方式 下面两个都可以 但一般书写习惯会选择第一种 1 String[] array = new String[5]; //新建一个长度为5的字符串数组 1 String array[] = new String[5]; // 新建一个长度为5的字符串数组 由于数组的长度一旦初始化就无法改变,所以我们需要另辟思路 假如

产生一个不重复的随机数组(元素各不相同的随机数组)的算法

产生一个 由0到99之间的数组成,元素各不相同的无序的一个长度为100的数组. 其实换句话说,就是把一个 由0到100之间的一个 连续的数组给打散. 由三种方式. 一:使用List 和随机数 //  long s1 = System.currentTimeMillis();  //  List ar = new ArrayList();   //   for (int i = 0; i < 100000; i++) { //    ar.add(i); //   }   //   int [] 

组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)

function Bird(name, age) {     this.name = name;     this.age = age;     this.sons = ["Tom", "John"];     //在sayName()方法不存在的情况下,添加到原型中     if (typeof this.sayName != "function") {         Bird.prototype.sayname = function() {