重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
将数字从大到小排序的方法:
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站设计、成都外贸网站建设、扶风网络推广、微信小程序、扶风网络营销、扶风企业策划、扶风品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供扶风建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。
示例代码如下:
public class Test {
public static void main(String[] args) {
int [] array = {12,3,1254,235,435,236,25,34,23};
int temp;
for (int i = 0; i array.length; i++) {
for (int j = i+1; j array.length; j++) {
if (array[i] array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp; // 两个数交换位置
}
}
}
for (int i = 0; i array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99
扩展资料
Java中利用数组进行数字排序一般有4种方法:
1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。
2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。
3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。
4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。
整数转成字符串后排序。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
ListString list = Arrays.asList("1", "10", "12", "3", "2", "4", "5");
Collections.sort(list);
System.out.println(Arrays.toString(list.toArray()));
}
}
首先,API里面写了: Sorts the specified array of ints into ascending numerical order.
就是这是个升序!
其次,你这个运行应该不会报错,输出的会是 数组地址,因为数组在java里面是一个对象,如果要看排序的结果,需要遍历下:
比如
for(int i:arr){
System.out.println(i);
}
给你介绍4种排序方法及源码,供参考
1.冒泡排序
主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面,每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2)。
public static void bubbleSort(int[] arr){
for(int i =0; i arr.length - 1; i++){
for(int j=0; j arr.length-1; j++){
if(arr[j] arr[j+1]){
arr[j] = arr[j]^arr[j+1];
arr[j+1] = arr[j]^arr[j+1];
arr[j] = arr[j]^arr[j+1];
}
}
}
}
2.选择排序
主要思路:每次遍历序列,从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2)。
public 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[j] arr[i]){
arr[j] = arr[j]^arr[i];
arr[i] = arr[j]^arr[i];
arr[j] = arr[j]^arr[i];
}
}
}
}
3.插入排序
主要思路:使用了两层嵌套循环,逐个处理待排序的记录。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2)。
public static void insertionSort(int[] arr){
int j;
for(int p = 1; p arr.length; p++){
int temp = arr[p]; //保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p; j0 temp arr[j-1]; j--){
arr[j] = arr[j-1];
}
//正确的位置设置成保存的数据
arr[j] = temp;
}
}
4.希尔排序
主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序, 希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
public static void shellSort(int[] arr){
int j ;
for(int gap = arr.length/2; gap 0 ; gap/=2){
for(int i = gap; i arr.length; i++){
int temp = arr[i];
for(j = i; j=gap temparr[j-gap]; j-=gap){
arr[j] = arr[j-gap];
}
arr[j] = temp;
}
}
}
你好,除了直接用多个System.out.println(xxx);直接打印出三角形外,我的代码最简单,而且给足了注释,可以直接运行
public class t {
public static void main(String[] args) {
int no=1;//要打印的数
for(int i=1;no=100;i++){//第1行1个数,第n行n个数,结束条件是打印的数=100
for(int j=1;j=i;j++){
System.out.print(no+++"\t");
}
System.out.println();//转行
}
}
}
结果:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63 64 65 66
67 68 69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88 89 90 91
92 93 94 95 96 97 98 99 100 101 102 103 104 105
电脑上没有编译器了,我说下思路吧,你把这四个数字放到一个整形数组里面,),百是指百分位,十指十分位,个就是个位,为了防止重复数字出现,用了判断语句if(..)
然后
public void 方法(数组)
{
for( int i=0;i数组.length;i++)
{
int 百= 数组[i]*100;
for( int j=0;j数组.length;j++)
{
if(j==i)
continue;
int 十= 数组[j]*10;
for( int k=0;k数组.length;k++)
{
if(k==i||k==j)
continue;
int 个= 数组[k];
int total = 百+十+个;
System.out.println( total);
}
}
}
}