Java菜鸟编程一个有趣的练习

xiaoxiao2021-02-28  54

昨天笔者完成了一个有趣的java编程练习,在这里分享一下。

任务:将n个数字(10 >= n >= 3 )进行排列,能组成多少个没有重复数字的三位数?将它们打印下来,并从小到大进行排列。

这里需要进行判断,如果输入的数字不符合要求,那么程序就不能被执行。如果符合要求,需要讨论:这些数字中含有0和不含有0。如果含有0,那么排列出的数字要大于100才能输出。之后的排序可以用冒泡排序,也可以用插入排序。笔者两种排序都尝试了一下。

(这里补充一下,对于直接插入排序,它的时间复杂度是n^2。理由是,对于有n个元素的数组,其中任意一个元素进行j次比较后,有n-j个元素要向后移动,即进行n-j次操作。所以一个元素排序需要的操作总数是n,那么总共为n^2。空间复杂度是1,因为需要有一个额外的变量来调整元素的位置。)

以下是笔者的代码,如果有什么问题,还请指出更正。

转载请注明原文地址: https://www.6miu.com/read-27615.html

最新回复(0)