- 编程
c++中三种常用排序
- 2024-2-21 16:17:03 @
#include <algorithm>
#include <iostream>
using namespace std;
int arr[10] = { 11, 33, 77, 99, 66, 55, 22, 44, 88, 66 };
const int N = 10;
int main() {
// 选择排序
// for (int i = 0; i < N; i++) {
// for (int j = i + 1; j < N; j++) {
// if(arr[i] > arr[j] )
// swap(arr[i] , arr[j]);
// }
// }
// 冒泡
// for (int i = 0; i < N; i++) {
// for (int j = 0; j < N - 1 - i; j++) {
// if (arr[j] > arr[j + 1]) {
// swap(arr[j], arr[j+1]);
// }
// }
// }
// 插入排序
for (int i = 1; i < N; i++) { // 默认第一张已经排好序
// 遍历并比较一个无序数组元素与所有有序数组元素
for (int j = i; j > 0; j--) {
if (arr[j] < arr[j - 1] ) {
swap(arr[j - 1], arr[j]);
}
}
}
for (int i = 0; i < N; i++) {
cout << arr[i] << " ";
}
return 0;
}
2 条评论
-
leesa LV 8 @ 2024-2-27 11:54:45已修改
// 插入算法 for(int i = 1; i<N;i++){ int now = arr[i]; int j; for(j = i-1;j>=0;j--){ if(arr[j] > now){ arr[j+1] = arr[j]; }else{ break; } } arr[j+1] = now; }
-
2024-2-21 16:17:33@
#include <bits/stdc++.h> using namespace std; int main(){ int arr[9]={31,99,11,33,410,420,1744,409,3199}; const int N=9; // for(int i=0;i<N;i++){ // for(int j=i+1;j<N;j++){ // if(arr[j]<arr[i]){ // swap(arr[i],arr[j]); // } // } // } // for(int i=0;i<N;i++){ // for(int j=0;j<N-i-1;j++){ // if(arr[j]>arr[j+1]){ // swap(arr[j],arr[j+1]); // } // } // } for(int i=1;i<N;i++){ for(int j=i;j>0;j--){ if(arr[j]<arr[j-1]){ swap(arr[j-1],arr[j]); } } } for(int i=0;i<N;i++){ cout<<arr[i]<<" "; } return 0; }
- 1