デイ4_3初期アルゴリズム - ソート(シンプルなアプリケーション)

1.バブルソート

主交換位置は、配列の数が最大数を決定するために、第1の比較器から開始し、最終的配列に、多数の決意で最大の第二など、フォワードバック行からです。前の記事では、コード例を持っています

2. [ソート

列挙は、残りの第1のスイッチング素子と、N-1が注文した残りの配列は、最小を見つけるために、N-1から継続する、シーケンスから最小の数を見つけ、第2のスイッチング素子N-2番目の配列はこれにソートされるべきである、と。

#include<cstdio>
#include<cstring>
void selectSort(int A[],int n){
	for(int i = 0;i<n;i++){
		int k = i;
		for(int j = i;j<n;j++){
			if(A[j] < A[k])
				k = j; 
		}
		int temp = A[i];
		A[i] = A[k];
		A[k] = temp;
	}
}
int main(){
	int a[] = {1,5,4,8,9,3,2,10,7,6};
	int len = sizeof(a)/sizeof(int);
	selectSort(a,len);
	for(int i = 0;i<len;i++)
		printf("%d ",a[i]); 
	return 0;
} 

3.挿入ソート

#include<cstdio>
#include<cstring> 
void selectSort(int A[],int n){
	for(int i = 1;i<n;i++){
		int temp = A[i],j = i;
		while(j>1 && temp<A[j-1]){
			A[j] = A[j-1];
			j--;
		}
		A[j] = temp;
	}
}
int main(){
	int a[] = {1,5,4,8,9,3,2,10,7,6};
	int len = sizeof(a)/sizeof(int);
	selectSort(a,len);
	for(int i = 0;i<len;i++)
		printf("%d ",a[i]); 
	return 0;
} 

4.ソートアプリケーション機能

sort関数内のC言語やC ++でのqsort(推奨)

1.sort機能

あなたは、std名前空間を使用して、ヘッダファイルとの#includeに追加する必要があります。
ソート(第1のアドレス要素、終了アドレスの次のエレメントアドレス、比較機能(オプション))。

簡単な例

#include<cstdio>
#include<algorithm> 
using namespace std;
int main(){
	int a[6] = {9,4,2,5,6,-1};
	sort(a,a+4);	//a[0]到a[3]从小到大排序
	for(int i = 0;i<6;i++)
		printf("%d ",a[i]);
	printf("\n");
	sort(a,a+6);	//a[0]到a[5]从小到大排序
	for(int i = 0;i<6;i++)
		printf("%d ",a[i]);
	return 0;
} 

ダブルチャーアレイおよびアレイの使用の同じタイプ

ステップ5.共通のテーマ並べ替え

このような学生の構造などの情報をそれぞれ複数の提示1.データ、

まず、CMP機能を実現することになり、行のサイズの同じ部分を押し、小さなプレス辞書編集名行のスコア

//对于结构体的比较 
bool cmp(Student a,Student b){
	if(a.score != b.score) return a.score > b.score;
	else return strcmp(a.name,b.name) < 0; 
} 

(配列が並んされた降順でスコアによる)ランキングを達成するため、同一のスコアが同一のランクを占め、R属性が順位を示し

stu[0].r = 1;
	for(int i = 0;i<n;i++){
		if(stu[i].score == stu[i-1].score){
			stu[i].r = stu[i-1].r;
		}else{
			stu[i].r = i + 1;
		}
	}
公開された26元の記事 ウォンの賞賛3 ビュー212

おすすめ

転載: blog.csdn.net/qq_41898248/article/details/103758526