随机产生一组数组,然后用选择法排序

问题描述

要求输入数组的大小可以弄过n来控制,例如n=10,数组就可以随机产生10个数,n=20,就可以产生20个,以此类推。然后用随机产生的数组用选择法排序,帮我改改程序,看看哪里不对,谢谢啦:importjava.io.*;importjava.util.Arrays;importjava.util.Random;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{Stringnumber;inta;BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));System.out.println("pleasetypenumber");number=buf.readLine();a=Integer.parseInt(number);xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];Randomrand=newRandom();for(inti=0;i<A.length;i++){A[i]=rand.nextInt(100);;System.out.println(A[i]+"");selectionSort1(A);}}publicstaticvoidselectionSort1(int[]x){for(inti=0;i<x.length-1;i++){for(intj=i+1;j<x.length;j++){if(x[i]>x[j]){inttemp=x[i];x[i]=x[j];x[j]=temp;}System.out.print(x[i]+"");}}}

解决方案

解决方案二:
importjava.io.*;importjava.util.Scanner;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{//Stringnumber;inta;//BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Scannerscanner=newScanner(System.in);System.out.println("pleasetypenumber");//number=buf.readLine();a=scanner.nextInt();xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];//Randomrand=newRandom();for(inti=0;i<A.length;i++){//A[i]=rand.nextInt(100);;A[i]=(int)(Math.random()*100);System.out.print(A[i]+"");}System.out.println();selectionSort1(A);}publicstaticvoidselectionSort1(int[]x){for(inti=0;i<x.length-1;i++){for(intj=i+1;j<x.length;j++){if(x[i]>x[j]){inttemp=x[i];x[i]=x[j];x[j]=temp;}}}for(intin:x){System.out.print(in+"");}}}

解决方案三:
调试结果:pleasetypenumber53538861383
解决方案四:
调试结果:pleasetypenumber535388613831335388386
解决方案五:
publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{Stringnumber;inta;BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));System.out.println("pleasetypenumber");number=buf.readLine();a=Integer.parseInt(number);xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];Randomrand=newRandom();for(inti=0;i<A.length;i++){A[i]=rand.nextInt(100);System.out.print(A[i]+"t");}System.out.println();selectionSort1(A);}publicstaticvoidselectionSort1(int[]x){//定义最小数的位置intminPosition;for(inti=0;i<x.length-1;i++){//设置最小数的位置minPosition=i;for(intj=i+1;j<x.length;j++){//如果设置的最小数比查询的下一个数大,设置最小数的位置是查询的数if(x[minPosition]>x[j]){minPosition=j;}}//最小数的位置不是最开始的数if(minPosition!=i){//交换最开始的数与最小数的位置inttemp=x[i];x[i]=x[minPosition];x[minPosition]=temp;}}for(inti=0;i<x.length;i++){System.out.print(x[i]+"t");}System.out.println();}}

解决方案六:
楼主的代码有一点小问题是:排序结束在输出,不要一边排序一边输出
解决方案七:
引用1楼goodmrning的回复:

Javacodeimportjava.io.*;importjava.util.Scanner;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{//Stringnumber;inta;//BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Scannerscanner=newScanner(System.in);System.out.println("pleasetypenumber");//nu…

请问这位高手;in:x什么意思?

时间: 2024-08-30 02:41:04

随机产生一组数组,然后用选择法排序的相关文章

随机产生一组数组 然后合并排序

问题描述 要求用从键盘上输入一个数字,可以随机产生一组数组,例如输入10,可以产生10个元素的数组,然后把这个数组里的元素用合并排序的方法实现!小弟,新手谢谢大家啦 解决方案 解决方案二:归并排序?呵呵,学数据结构的时候有实现过,但是忘记了,递归把,有点点复杂

c语言-C语言选择法排序函数的实现问题

问题描述 C语言选择法排序函数的实现问题 我在看C语言程序设计是遇到一个问题,用选择法对数组中的5个整数按由小到大排序 #include int main() { void sort(int array[],int n); int a[5],i; printf("Please input 5 numbers:n"); for(i=0;i<5;i++) scanf("%d",&a[i]); sort(a,5); printf("the sort

Go语言实现选择法排序实例_Golang

本文实例讲述了Go语言实现选择法排序的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import "fmt" func select_sort(a []int) {  len := len(a)  for i:=0; i < len-1; i++ {   k := i   j:= i + 1     for ; j < len; j++ {    if a[j] < a[k] { k = j }   }   if k

C++ 基本算法 冒泡法、交换法、选择法、实现代码集合_C 语言

1.冒泡法: 这是最原始,也是众所周知的最慢的算法了.他的名字的由来因为它的工作看来象是冒泡: 复制代码 代码如下: #include <iostream.h> void BubbleSort(int* pData,int Count) { int iTemp; for(int i=1;i<Count;i++) { for(int j=Count-1;j>=i;j--) {if(pData[j]<pData[j-1]) { iTemp = pData[j-1]; pData[

使用::std::vector&amp;lt;&amp;gt;作为管理动态数组的优先选择

摘要: 本文介绍了C++标准库中的容器类vector,分析了它的优点,并且建议在应用程序中使用它作为动态数组的优先选择,而不是MFC的CArray<>等其他类模板.最后介绍了vector的接口和使用时的注意事项. 在一些使用 MFC 的程序中,经常看到许多程序使用 CArray<>,由于 CArray<>的设计问题,造成使用它的代码的复杂化,增加了维护难度.因此建议使用 ::std::vector<> 代替 CArray<>. 另外,也看到一些程

c语言编程-C语言 选择法 从小往大排列数字 但是我这个程序无法得到正确结果 why

问题描述 C语言 选择法 从小往大排列数字 但是我这个程序无法得到正确结果 why #include void sort(int array[],int n) {int i,t; for(i=0;i<n-1;i++) { if(array[i+1]<array[i]) t=array[i+1];array[i+1]=array[i];array[i]=t;} } int main() { int a[10],i; printf("enter the arrayn"); fo

MFC通过多线程并发复制数组,关于数组下标的选择?

问题描述 MFC通过多线程并发复制数组,关于数组下标的选择? 从文件读取数组,所以数组大小是不确定的,这种情况下关于MFC数组下标范围的选择应该怎么做? 解决方案 大小不固定可以使用new动态分配内存,不建议使用链表,那样效率低. 解决方案二: 用CArray等 先获取数组大小 然后遍历 解决方案三: 可以用链表,也可以借助STL啊,比如vector

C#怎么随机数传给数组

问题描述 C#怎么随机数传给数组,我现在有两个表,要同时得到这个随机数,请问怎么得到! 解决方案 解决方案二:Randomr=newRandom();r.Next(1);//参数你自己看着填传给数组嘛就是循环呗多少数组都一样解决方案三: 解决方案四:ArrayListarray=newArrayList();Randomr=newRandom();for(inti=0;i<100;i++){array.Add(r.Next(1,100));} 解决方案五:引用3楼enter89的回复: C#co

PHP冒泡法排序与二分法查找实例

   代码如下 复制代码 //冒泡法排序 //随便给出一个乱序数组 $arr = array(0,2,10,9,19,23,89,112,321,234); //统计数组 $num = count($arr); //冒泡倒序排列 for($i=0;$i<$num-1;$i++){  for($m=0;$m<$num-1;$m++){   if($arr[$m]<$arr[$m+1]){    $temp = $arr[$m];    $arr[$m] = $arr[$m+1];    $