いわゆる並べ替えは、レコードの文字列を、その中の 1 つまたはいくつかのキーワードのサイズに応じて昇順または降順に配置する操作です。ソートアルゴリズムは、必要に応じてレコードを配置する方法です。並べ替えアルゴリズムは、多くの分野、特に大量のデータの処理において大きな注目を集めています。優れたアルゴリズムにより、多くのリソースを節約できます。
単純挿入ソート
/** * 将位置p上的元素向左移动,直到它在前p+1个元素中的正确位置被找到的地方 * @param a an array of Comparable items */public static <AnyType extends Comparable<? super AnyType>> void insertionSort(AnyType[] a) { int j; for (int p = 1; p < a.length; p++) { AnyType tmp = a[p]; for (j = p; j > 0 && tmp.compareTo(a[j-1]) < 0; j--) { a[j] = a[j-1]; } a[j] = tmp; } System.out.println(Arrays.toString(a));}
シェルソートヒルソート
/** * @param a an array of Comparable items */public static <AnyType extends Comparable<? super AnyType>> void shellSort(AnyType[] a) { int j; for (int gap = a.length / 2; gap > 0; gap /= 2) { for (int i = gap; i < a.length; i++) { AnyType tmp = a[i]; for (j = i; j >= gap && tmp.compareTo(a[j - gap]) < 0; j -= gap) { a[j] = a[j - gap]; } a[j] = tmp; } } System.out.println(Arrays.toString(a)); }
バイナリソートバイナリソート
/** * @param a an array of Comparable items */public static <AnyType extends Comparable<? super AnyType>> void binarySort(AnyType[] a) { Integer i,j; Integer low,high,mid; AnyType temp; for(i=1;i<a.length;i++){ temp=a[i]; low=0; high=i-1; while(low<=high){ mid=(low+high)/2; if(temp.compareTo(a[mid]) < 0) { high=mid-1; } else { low=mid+1; } } for(j=i-1;j>high;j--) a[j+1]=a[j]; a[high+1]=temp; } System.out.println(Arrays.toString(a)); }
バブルソート
/** * @param a an array of Comparable items */public static <AnyType extends Comparable<? super AnyType>> void bubbleSort(AnyType[] a) { Integer i,j; AnyType temp; for(i=1;i<a.length;i++) { for(j=0;j<a.length-i;j++) { //循环找到下沉"气泡",每下沉一位,下次比较长度较小一位 if(a[j].compareTo(a[j+1]) > 0) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; //将"气泡"下沉到当前比较的最后一位 } } } System.out.println(Arrays.toString(a)); }
選択ソート選択ソート
/** * @param a an array of Comparable items */public static <AnyType extends Comparable<? super AnyType>> void selectSort(AnyType[] a) { Integer i,j,min; AnyType temp; for(i=0;i<a.length-1;i++) { temp=a[i]; min=i; //将当前位置元素当作最小值元素(其实是要将最小值元素交换到当前) for(j=i+1;j<a.length;j++) { if(temp.compareTo(a[j]) > 0) { //用a[i]和后面所有元素逐个比较,找到最小指的下标并记录 temp=a[j]; //下一位小于前一位,则将下一位赋值给temp并继续往右移动比较 min=j; //最小值的下标,赋值给min } } a[min] = a[i]; //将最小值元素的和当前元素交换,使得当前元素为其后面所有元素中最小值 a[i] = temp; } System.out.println(Arrays.toString(a));
上記の内容はチュートリアルですいくつかの並べ替えアルゴリズムについて説明しますので、皆さんのお役に立てれば幸いです。
関連する推奨事項:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6
ビジュアル Web 開発ツール
