ソートアルゴリズム2.泡の位置合わせ
12272 ワード
🧶 ソートアルゴリズム
🎐 泡の位置合わせ
Bubble Sort(Bubbleソート):2つの並べ替えられたデータの中で大きなデータを後方に送信し、ソートします.
1.左から
2.次の値と比較して、位置をサイズ順に交換します.
3.次の値に移動し、その要素と次の要素を比較します.
4.繰り返し
🎢 インプリメンテーション
public class BubbleSort {
public int[] sort(int[] data) {
for (int i = 0; i < (data.length - 1); i++) {
for(int j = 0; j < (data.length - i - 1); j++) {
if (data[j] > data[j+1]) {
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
return data;
}
}
テストコードclass BubbleSortTest {
@Test
void bubble_sort_test() {
int[] answer = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] arr1 = {4, 1, 7, 9, 2, 5, 6, 3, 8};
int[] arr2 = {2, 1, 8, 9, 4, 3, 6, 5, 7};
BubbleSort bubbleSort = new BubbleSort();
assertArrayEquals(answer, bubbleSort.sort(arr1));
assertArrayEquals(answer, bubbleSort.sort(arr2));
int[] arr3 = new int[100];
Random random = new Random();
for (int i = 0; i < 100; i++) {
arr3[i] = random.nextInt(1000);
}
final int[] answer3 = Arrays.copyOf(arr3, arr3.length);
Arrays.sort(answer3);
assertNotEquals(Arrays.toString(answer3), Arrays.toString(arr3));// 정렬전에는 다르고
assertArrayEquals(answer3, bubbleSort.sort(arr3));//정렬후에는 같아야 함
}
}
テスト結果整理する
-導入が容易
-安定した配列.
-余分なメモリ消費量が少ない.
−時間的複雑度はO(n^2)である.
-交換プロセスが多い.
Reference
この問題について(ソートアルゴリズム2.泡の位置合わせ), 我々は、より多くの情報をここで見つけました https://velog.io/@myhouse34/정렬-알고리즘-2.-버블정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol