回答
有兩種選擇,真正做到:
- 使用標準的集合,as explained by Shakedown
- 使用Arrays.sort
例如,
int[] ints = {11367, 11358, 11421, 11530, 11491, 11218, 11789};
Arrays.sort(ints);
System.out.println(Arrays.asList(ints));
臨屋當然,假設你已經將整數作爲一個數組。 如果您需要首先解析這些文件,請查找String.split和Integer.parseInt。
你可以把它們放入一個列表,然後使用他們的自然順序進行排序,像這樣:
final List<Integer> list = Arrays.asList(11367, 11358, 11421, 11530, 11491, 11218, 11789);
Collections.sort(list);
// Use the sorted list
如果號碼存儲在同一個變量,那麼你就必須以某種方式把它們放在一個List
,然後調用sort
,就像這樣:
final List<Integer> list = new ArrayList<Integer>();
list.add(myVariable);
// Change myVariable to another number...
list.add(myVariable);
// etc...
Collections.sort(list);
// Use the sorted list
有沒有不同的方法來排序數字。我有人推薦我關於ArrayList,但我們必須排序一個for循環和一個if語句,因爲我從來沒有被教過ArrayList但 – user983246
那麼,如果你想使用算法來做到這一點。那裏有很多排序算法。如果你不太關心效率,更關心可讀性和可理解性。我推薦插入排序。這裏是psudo代碼,把它翻譯成java是很簡單的。
begin
for i := 1 to length(A)-1 do
begin
value := A[i];
j := i - 1;
done := false;
repeat
{ To sort in descending order simply reverse
the operator i.e. A[j] < value }
if A[j] > value then
begin
A[j + 1] := A[j];
j := j - 1;
if j < 0 then
done := true;
end
else
done := true;
until done;
A[j + 1] := value;
end;
end;
代碼結構不是正確的。只要去這裏http://en.wikipedia.org/wiki/Insertion_sort –
對於整數範圍窄的整數嘗試Counting sort,其複雜度爲O(range + n)
,其中n
是要排序的項目數。如果您想對不是離散使用最優的n * log(n)算法(quicksort,heapsort,mergesort)進行排序。合併排序也用於其他響應Arrays.sort
已提及的方法。如何推薦一些算法或函數調用沒有簡單的方法,因爲有幾十種特殊情況,您可以使用某種類型,但不使用其他類型。所以請指定你的應用程序的確切目的(學習一些東西(從插入排序或冒泡排序開始),整數的有效性(使用計數排序),結構的有效性和可重用性(使用n * log( n)算法),或者只是希望它以某種方式排序 - 使用Arrays.sort :-))。如果你想,如果中的Array.sort沒有你想找的爲整數的字符串表示
排序,比ü可能在基數排序來interrested ....你可以試試這個:
package drawFramePackage;
import java.awt.geom.AffineTransform;
import java.util.ArrayList;
import java.util.ListIterator;
import java.util.Random;
public class QuicksortAlgorithm {
ArrayList<AffineTransform> affs;
ListIterator<AffineTransform> li;
Integer count, count2;
/**
* @param args
*/
public static void main(String[] args) {
new QuicksortAlgorithm();
}
public QuicksortAlgorithm(){
count = new Integer(0);
count2 = new Integer(1);
affs = new ArrayList<AffineTransform>();
for (int i = 0; i <= 128; i++){
affs.add(new AffineTransform(1, 0, 0, 1, new Random().nextInt(1024), 0));
}
affs = arrangeNumbers(affs);
printNumbers();
}
public ArrayList<AffineTransform> arrangeNumbers(ArrayList<AffineTransform> list){
while (list.size() > 1 && count != list.size() - 1){
if (list.get(count2).getTranslateX() > list.get(count).getTranslateX()){
list.add(count, list.get(count2));
list.remove(count2 + 1);
}
if (count2 == list.size() - 1){
count++;
count2 = count + 1;
}
else{
count2++;
}
}
return list;
}
public void printNumbers(){
li = affs.listIterator();
while (li.hasNext()){
System.out.println(li.next());
}
}
}
接受來自用戶和插入排序的輸入。以下是它的工作方式:
package com.learning.constructor;
import java.util.Scanner;
public class InsertionSortArray {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("enter number of elements");
int n=s.nextInt();
int arr[]=new int[n];
System.out.println("enter elements");
for(int i=0;i<n;i++){//for reading array
arr[i]=s.nextInt();
}
System.out.print("Your Array Is: ");
//for(int i: arr){ //for printing array
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i] + ",");
}
System.out.println("\n");
int[] input = arr;
insertionSort(input);
}
private static void printNumbers(int[] input) {
for (int i = 0; i < input.length; i++) {
System.out.print(input[i] + ", ");
}
System.out.println("\n");
}
public static void insertionSort(int array[]) {
int n = array.length;
for (int j = 1; j < n; j++) {
int key = array[j];
int i = j-1;
while ((i > -1) && (array [i] > key)) {
array [i+1] = array [i];
i--;
}
array[i+1] = key;
printNumbers(array);
}
}
}
- 1. 按低,中,高順序排列一列?
- 2. 按從高到低的順序對列表進行排序
- 3. 排序陣列從低到高
- 4. 排序數組,從高到低
- 5. 數組排序問題(從低到高)
- 6. 在數組中排序從高到低
- 7. 將數組從高到低排序
- 8. 從最低排列到最高排列而不排序
- 9. 按價格從低到高從高到低從高到低magento2
- 10. 硒的Java:在收藏人數排序從低到高
- 11. Java中按字典順序排列整數ArrayList ArrayList
- 12. python按值排序數據結構從低到高
- 13. mysql按從最高值到最低值的順序顯示行
- 14. 排序從最高到最低的數字列表
- 15. 按列排序數據從最小到最大或按字母順序排列
- 16. java - 快速並行排序將無符號整數按順序排列?
- 17. 排列數組中間到低到高
- 18. 按字母順序排列的鏈表不按順序排列
- 19. 按順序排列
- 20. 在java中按字典順序排列(按字母順序)
- 21. 排序雙向鏈表從低到高
- 22. 排序輸出從高到低
- 23. 排序日期從高到低
- 24. PHP排序JSON從最高到最低
- 25. java排列從最低到最高的輸入值
- 26. 在java中按從小到大的順序顯示整數
- 27. 按順序排列並按組排序
- 28. 按字母順序排列分數和名稱,平均值,從最高到最低
- 29. 按聚合順序排列的順序
- 30. 「按順序排列」按相反順序排列?
將來,您可能會發現指定任何約束條件會更有用。例如,你是否可以使用提供的Java排序方法,或者如果你打算實現你自己的。這將幫助你得到更合適的答案,用更少的努力:) – obfuscation
'這些數字存儲在同一個整型變量中 - 我期望Java int或Integer在任意給定點處都有一個值時間:如果您想要訂購價值,請使用「集合」或_array_。 – greybeard