記事のディレクトリ
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;
}
}