將數(shù)字從大到小排序的方法:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了珠海免費建站歡迎大家使用!
例如簡一點的冒泡排序,將第一個數(shù)字和后面的數(shù)字逐個比較大小,如果小于,則互換位置,大于則不動。此時,第一個數(shù)為數(shù)組中的最大數(shù)。然后再將第二個數(shù)與后面的數(shù)逐個比較,以次類推。
示例代碼如下:?
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; //?兩個數(shù)交換位置?
}?
}?
}?
for?(int?i?=?0;?i??array.length;?i++)?{?
System.out.print(array[i]+"??");?
}?
}?
}
數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。
Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素。
你可以聲明一個數(shù)組變量,如 numbers[100] 來代替直接聲明 100 個獨立變量 number0,number1,....,number99
擴展資料
Java中利用數(shù)組進行數(shù)字排序一般有4種方法:
1、選擇排序是先將數(shù)組中的第一個數(shù)作為最大或最小數(shù),然后通過循環(huán)比較交換最大數(shù)或最小數(shù)與一輪比較中第一個數(shù)位置進行排序。
2、冒泡排序也是先將數(shù)組中的第一個數(shù)作為最大或最小數(shù),循環(huán)比較相鄰兩個數(shù)的大小,滿足條件就互換位置,將最大數(shù)或最小數(shù)沉底。
3、快速排序法主要是運用Arrays類中的Arrays.sort方法()實現(xiàn)。
4、插入排序是選擇一個數(shù)組中的數(shù)據(jù),通過不斷的插入比較最后進行排序。
快速排序法、冒泡法、選擇排序法、插入排序法
1.快速排序:
import java.util.Arrays;
public class Test2{
public static void main(String[] args){
int[] a={5,4,2,4,9,1};
Arrays.sort(a); //進行排序
for(int i: a){
System.out.print(i);
}
}
}
2.冒泡排序
public static int[] bubbleSort(int[] args){//冒泡排序算法
for(int i=0;iargs.length-1;i++){
for(int j=i+1;jargs.length;j++){
if (args[i]args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
3.選擇排序
public static int[] selectSort(int[] args){//選擇排序算法
for (int i=0;iargs.length-1 ;i++ ){
int min=i;
for (int j=i+1;jargs.length ;j++ ){
if (args[min]args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
4.插入排序
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;iargs.length;i++){
for(int j=i;j0;j--){
if (args[j]args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}
/**
*?2015年5月28日下午9:52:57
*?
*?@author?season?TODO?測試已通過,獲取財富值
*
*/
public?class?ArrayOperation?{
/**
*?對數(shù)組?arr?進行冒泡排序升序排序
*?
*?@param?arr
*????????????目標數(shù)組
*/
public?static?void?bubbleToUp(int[]?arr)?{
if?(null?==?arr)//?數(shù)組為空時,退出該方法
return;
for?(int?i?=?0;?i??arr.length?-?1;?i++)?{
for?(int?j?=?0;?j??arr.length?-?i?-?1;?j++)?{
if?(arr[j]??arr[j?+?1])?{
int?temp?=?arr[j];
arr[j]?=?arr[j?+?1];
arr[j?+?1]?=?temp;
}
}
}
}
/**
*?使用選擇排序法對目標數(shù)組進行降序排序
*?
*?@param?arr
*????????????目標數(shù)組
*/
public?static?void?selectToDown(int[]?arr)?{
for?(int?i?=?0;?arr?!=?null??i??arr.length;?i++)?{
int?flag?=?i;
for?(int?j?=?i?+?1;?j??arr.length;?j++)?{
if?(arr[j]??arr[flag])
flag?=?j;
}
if?(flag?!=?i)?{
int?temp?=?arr[i];
arr[i]?=?arr[flag];
arr[flag]?=?temp;
}
}
}
/**
*?遍歷數(shù)組所有元素
*?
*?@param?arr
*????????????目標數(shù)組
*/
public?static?void?displayArray(int[]?arr)?{
System.out.println();
for?(int?num?:?arr)
System.out.print("??"?+?num);
}
public?static?void?main(String[]?args)?{
//?初始化數(shù)組
int[]?arr?=?{?20,?-878,?90,?78,?89,?-908?};
//?首先進行冒泡排序(升序)
bubbleToUp(arr);
displayArray(arr);
//?然后進行選擇排序(降序)
selectToDown(arr);
displayArray(arr);
}
}
自己寫的三種傳統(tǒng)排序法??炫欧ㄖ饕亲约阂矝]怎么搞明白……
(你可以建數(shù)組來存數(shù)據(jù),就不寫完整的了。)
public void insert(int[] a3) {//插入排序法
// TODO Auto-generated method stub
System.out.println("插入法");
int temper=0;
for(int i=1;ia3.length;i++){
for(int j=i;j0;j--){
if(a3[j]a3[j-1]){
temper=a3[j];
a3[j]=a3[j-1];
a3[j-1]=temper;
}else break;
}
}
}
//插入排序法完
//選擇排序法
public void select(int[] a2) {
// TODO Auto-generated method stub
System.out.println("選擇排序法");
int temper=0;
for (int i = 0; i a2.length-1; i++) {
int min = a2[i];
int minFoot = i;
for (int j = i + 1; j a2.length; j++) {
if (min a2[j]) {
min=a2[j];
minFoot=j;
}
}
temper=a2[i];
a2[i]=min;
a2[minFoot]=temper;
}
}
//選擇排序法完
//冒泡排序法
public void Bubbling(int[] a1) {
System.out.println("冒泡排序法");
int temper = 0;
for (int i = 0; i a1.length - 1; i++) {
for (int j = 0; j a1.length - 1 - i; j++) {
if (this.a1[j] this.a1[j + 1]) {
temper = a1[j];
a1[j] = a1[j + 1];
a1[j + 1] = temper;
}
}
}
}
//冒泡排序法完