1.第一種:我們最熟悉的氣泡排序法
定義雙層迴圈,依次遍歷(時間複雜度為n2,空間複雜度為n2)
for
(int j =
0; j < arr.length -
1; j++)}
}for
(int i =
0; i < arr.length; i++
)
2.思路:依次遍歷陣列,每遍歷到乙個元素時,先假定該元素為該輪的最小數,然後再通過遍歷該元素後面的每個元素,並與最小數進行比大小,更小的為最小數,將最小數的元素小標換到下標為i處
核心思路和氣泡排序相似 時間和空間複雜度都為n^2;
int temp =0;
for(
int i =
0; i < arr.length -
1; i++)}
temp = arr[i]
; arr[i]
= arr[minindex]
; arr[minindex]
= temp;
}
3.插入排序法:
思路:首先使陣列中最開始的元素作為已經排序好的陣列元素,將原先陣列中的每乙個元素都與排序好的元素從右往左比較,當碰到小於等於該元素的,將這個元素插入到當前位置。
}}4.希爾排序法(在插入排序的方法上進行優化,減少比較次數)
原理:每隔整數sp個數進行排序,即組內有序,當sp為1時,進行於類似插入排序,最終構造成有序陣列(假定相隔sp個單位的元素為一組,先進行組內排序。然後掃瞄所有組)
int sp = arr.length /2;
while
(sp >=1)
arr[j]
= temp;
//將判斷前利用中間變數記錄下來的值賦予給間隔後的值}}
sp /=2
;//不斷縮小間隔距離
}
5.快速排序法(利用由clr提供的演算法自動公升序排序)
array.
sort
(arr)
;//由clr提供的演算法
for(
int i =
0; i < arr.length; i++
)
陣列練習 各種陣列方法的使用
方法都是基礎,學習一下 的工整 一開始看到bs1 噫,這是什麼鬼,我頓了一下,細看下句尾不是分號而是冒號,三元運算 只是平時像這樣長句的話,一般都用if else 加 而此作者把?號和 號寫在句尾很明了 還有一點是三元運算中間都是用的逗號表示式,而我平時都是的分號,逗號表示式的一般形式是 表示式1,...
C 各種排序方法
c c 實現直接插入排序 includeusing namespace std int main int k sizeof a sizeof a 0 int j for int i 1 i 0 a j temp j a j 1 temp 此處就是a j 1 temp for int f 0 f歸併排...
C 中各種資料型別轉換的方法的類
各種資料型別轉換方法的類 public class gf convert char陣列 轉換 字串 public static string chararray2string char in str byte陣列 轉換 字串 public static string bytearray2string...