排序系列算法

一、明明的随机数

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N11000之间的随机整数(N1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

思路:循环获得输入的整数,再循环添加到Treeset 集合里面。遍历treeSet集合便可。TreeSet可以去重 默认升序。

 

import java.text.DecimalFormat;

import java.util.ArrayList;

import java.util.Scanner;

import java.util.TreeSet;

public class Main {

    public static void main(String[] args) {

     Scanner sc=new Scanner(System.in);

     while (sc.hasNext()){

       int a=sc.nextInt();

       TreeSet <Integer> set=new TreeSet<Integer>();    

        for(int i=0;i<a;i++){

         int b=sc.nextInt();

          set.add(b);

        }

    for(Integer i :set){

    System.out.println(i);

    }   

     }

        }

   }

 二、选择(快速排序)、冒泡排序:

取出整型数据中存在指定整数的数据,并按升序排列 返回。

样例输入:12345654388773346

3

输出:3 3461234538877

思路:拿到输入的字符串,用逗号分割。用字符串包含的方法,把包含有的放入新建的集合中。新建整形数组,长度为集合的长度。从集合中取出元素在放入数组中。再用Arrays.sort(a)快速排序的方法对整型数组排序。在遍历数组。

import java.util.*;

public class Main{

    public static void main(String[] args){

        Scanner scan=new Scanner(System.in);

        String s=scan.nextLine();

        String []s1=s.split(",");

        String s2=scan.nextLine();

        ArrayList<String> list=new ArrayList<String>();

        for(int i=0;i<s1.length;i++){

        if(s1[i].contains(s2)){

        list.add(s1[i]);

        }

        }

        int [] a=new int[list.size()];

        for(int n=0;n<list.size();n++){

         a[n]= Integer.parseInt(list.get(n));

        }

        //Arrays.sort(a);//选择排序,快速排序

        //冒泡排序

        for(int i=0;i<a.length-1;i++){

        for(int j=i+1;j<a.length;j++){

        if(a[i]<a[j]){

        int temp =a[i];

        a[i]=a[j];

        a[j]=temp;

          }

        

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhwadezh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值