#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 条评论

  • @ 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