將數(shù)字從大到小排序的方法:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、扶風(fēng)網(wǎng)絡(luò)推廣、微信小程序、扶風(fēng)網(wǎng)絡(luò)營(yíng)銷(xiāo)、扶風(fēng)企業(yè)策劃、扶風(fēng)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供扶風(fēng)建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
例如簡(jiǎn)一點(diǎn)的冒泡排序,將第一個(gè)數(shù)字和后面的數(shù)字逐個(gè)比較大小,如果小于,則互換位置,大于則不動(dòng)。此時(shí),第一個(gè)數(shù)為數(shù)組中的最大數(shù)。然后再將第二個(gè)數(shù)與后面的數(shù)逐個(gè)比較,以次類推。
示例代碼如下:?
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; //?兩個(gè)數(shù)交換位置?
}?
}?
}?
for?(int?i?=?0;?i??array.length;?i++)?{?
System.out.print(array[i]+"??");?
}?
}?
}
數(shù)組對(duì)于每一門(mén)編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。
Java 語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類型元素。
你可以聲明一個(gè)數(shù)組變量,如 numbers[100] 來(lái)代替直接聲明 100 個(gè)獨(dú)立變量 number0,number1,....,number99
擴(kuò)展資料
Java中利用數(shù)組進(jìn)行數(shù)字排序一般有4種方法:
1、選擇排序是先將數(shù)組中的第一個(gè)數(shù)作為最大或最小數(shù),然后通過(guò)循環(huán)比較交換最大數(shù)或最小數(shù)與一輪比較中第一個(gè)數(shù)位置進(jìn)行排序。
2、冒泡排序也是先將數(shù)組中的第一個(gè)數(shù)作為最大或最小數(shù),循環(huán)比較相鄰兩個(gè)數(shù)的大小,滿足條件就互換位置,將最大數(shù)或最小數(shù)沉底。
3、快速排序法主要是運(yùn)用Arrays類中的Arrays.sort方法()實(shí)現(xiàn)。
4、插入排序是選擇一個(gè)數(shù)組中的數(shù)據(jù),通過(guò)不斷的插入比較最后進(jìn)行排序。
整數(shù)轉(zhuǎn)成字符串后排序。
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里面寫(xiě)了: Sorts the specified array of ints into ascending numerical order.
就是這是個(gè)升序!
其次,你這個(gè)運(yùn)行應(yīng)該不會(huì)報(bào)錯(cuò),輸出的會(huì)是 數(shù)組地址,因?yàn)閿?shù)組在java里面是一個(gè)對(duì)象,如果要看排序的結(jié)果,需要遍歷下:
比如
for(int i:arr){
System.out.println(i);
}
給你介紹4種排序方法及源碼,供參考
1.冒泡排序
主要思路: 從前往后依次交換兩個(gè)相鄰的元素,大的交換到后面,這樣每次大的數(shù)據(jù)就到后面,每一次遍歷,最大的數(shù)據(jù)到達(dá)最后面,時(shí)間復(fù)雜度是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次選擇后,前面就都是最小元素的排列了,時(shí)間復(fù)雜度是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.插入排序
主要思路:使用了兩層嵌套循環(huán),逐個(gè)處理待排序的記錄。每個(gè)記錄與前面已經(jīng)排好序的記錄序列進(jìn)行比較,并將其插入到合適的位置,時(shí)間復(fù)雜度是O(n^2)。
public?static?void?insertionSort(int[]?arr){
int?j;
for(int?p?=?1;?p??arr.length;?p++){
int?temp?=?arr[p];???//保存要插入的數(shù)據(jù)
//將無(wú)序中的數(shù)和前面有序的數(shù)據(jù)相比,將比它大的數(shù),向后移動(dòng)
for(j=p;?j0??temp?arr[j-1];?j--){
arr[j]?=?arr[j-1];
}
//正確的位置設(shè)置成保存的數(shù)據(jù)
arr[j]?=?temp;
}
}
4.希爾排序
主要思路:用步長(zhǎng)分組,每個(gè)分組進(jìn)行插入排序,再慢慢減小步長(zhǎng),當(dāng)步長(zhǎng)為1的時(shí)候完成一次插入排序,? 希爾排序的時(shí)間復(fù)雜度是:O(nlogn)~O(n2),平均時(shí)間復(fù)雜度大致是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;
}
}
}
你好,除了直接用多個(gè)System.out.println(xxx);直接打印出三角形外,我的代碼最簡(jiǎn)單,而且給足了注釋,可以直接運(yùn)行
public class t {
public static void main(String[] args) {
int no=1;//要打印的數(shù)
for(int i=1;no=100;i++){//第1行1個(gè)數(shù),第n行n個(gè)數(shù),結(jié)束條件是打印的數(shù)=100
for(int j=1;j=i;j++){
System.out.print(no+++"\t");
}
System.out.println();//轉(zhuǎn)行
}
}
}
結(jié)果:
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
電腦上沒(méi)有編譯器了,我說(shuō)下思路吧,你把這四個(gè)數(shù)字放到一個(gè)整形數(shù)組里面,),百是指百分位,十指十分位,個(gè)就是個(gè)位,為了防止重復(fù)數(shù)字出現(xiàn),用了判斷語(yǔ)句if(..)
然后
public void 方法(數(shù)組)
{
for( int i=0;i數(shù)組.length;i++)
{
int 百= 數(shù)組[i]*100;
for( int j=0;j數(shù)組.length;j++)
{
if(j==i)
continue;
int 十= 數(shù)組[j]*10;
for( int k=0;k數(shù)組.length;k++)
{
if(k==i||k==j)
continue;
int 個(gè)= 數(shù)組[k];
int total = 百+十+個(gè);
System.out.println( total);
}
}
}
}