バブル ソートの基本的な考え方は、
ソート シーケンスを前から後ろへ (添字の小さい要素から) 開始)、隣接する要素の値を順番に比較し、逆の順序が見つかった場合はそれらを交換します。これにより、値の大きい要素が水中の泡のように徐々に前から後ろに移動し、徐々に上に上昇します。
ソート処理中、各要素は常にそれぞれの位置に近づいているため、比較中に
が交換されていない場合は、順序が正しいことを意味します。
#バブル ソート アルゴリズムのプロセスの図
#元の配列: 3、9、-1、10、20
#(1) 3, 9, -1, 10, 20 //隣接する要素の順序が逆の場合は、それらを入れ替えます
(2) 3、-1、9、10、20
(3) 3、-1、9、10、20
(4) 3 , -1, 9, 10, 20
(1) -1, 3, 9, 10, 20 //Exchange
(2) -1、3、9、10、20
#(3) -1、3、9、10、20
(1) -1, 3, 9, 10, 20
(1) -1、3、9、10、20
(1) 配列サイズの合計を実行 - 1 つの大きなループ
import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]= {3,9,-1,10,-2}; //第i+1趟排序,将最大的数排在最后 int temp=0;//临时变量 for(int i=0;i<arr.length-1;i++) {//定义第几轮排序 for(int j=0;j<arr.length-1-i;j++) { if(arr[j+1]<arr[j]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } System.out.println("输出第"+(i+1)+"趟排序的结果"); System.out.println(Arrays.toString(arr)); } } }
[3, -1, 9, -2, 10]
最初の並べ替え結果を出力しますソート結果 2 回目のソート結果#[-1, 3, -2, 9, 10]ソートのアイデア:##元の配列: 101, 34, 119, 13 回目のソート結果を出力
[-1, -2, 3, 9, 10]
4回目のソート結果を出力
[-2, -1, 3, 9, 10]
2. 選択ソート方法
最初のソートラウンド: 1, 34, 119, 101
2 回目の並べ替え: 1、34、119、101
3 回目の並べ替え: 1、34、101、119
手順:
2. ソートの各ラウンドは別のサイクルであり、サイクルのルール (コード)
2.1 まず、現在の数値が最小数値であると仮定します。## を取得します。
import java.util.Arrays; public class QuickSort { public static void main(String[] args) { //int []arr={ 8,3,2,1,7,4,6,5}; int [] arr={101,34,109,1}; quicksort(arr); } public static void quicksort(int []arr){ for(int j=0;j<arr.length-1;j++) { int minindex=j;//假定当前下标为最小值下标 int minnumber=arr[j];//假定当前元素为最小值 for (int i = 1+j; i < arr.length; i++) { if (arr[i] < minnumber) {//若假定最小值并不是最小的 minnumber = arr[i];//重置minnumber minindex = i;//重置minindex } } //将最小值交换 arr[minindex] = arr[j]; arr[j] = minnumber; System.out.println("第"+(j+1)+"轮"); System.out.println(Arrays.toString(arr)); } } }
以上がJavaでバブルソートと選択ソートを実装するコードを記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。