1. 程式人生 > 其它 >第八章 Wi-Fi連線DHCP過程

第八章 Wi-Fi連線DHCP過程

技術標籤:排序資料結構與演算法

#include <QCoreApplication>
#include <iostream>
using namespace std;
/*插入排序,預設從小到大
1、元素拿出來,形成空位
2、滿足條件的元素後移
*/
void InsertionSort(int in[], int len)//O(n*n)
{
    int i = 0;
    int j = 0;
    int k = 0;//存放插入點的位置
    int temp;//存放拿出來的數

    //{13, 45 ,9,22, 5}
    //從第二個數開始,認為前面第一個數是已經排序好的
    for (i = 1; i < len; i++) {

        k = i; //待插入位置,如果未發生移位,該位置就是插入的位置
        temp = in[i];//拿出來的待插入那個數

        //遍歷前面i - 1個已經排序好的數,從i-1開始,與待插入的數temp比較,

        for (j = i - 1; j >= 0; j--) {

            //如果某個位置的數小於temp,那麼該位向後挪位
            //從大到小 <
            //從小到大 >
            if(in[j] < temp){
                //第j位後移
                in[j + 1]  = in[j];

                //第j位數後移之後留下的空位j為待插入數的位置
                k = j;
            }


        }
        //插入
        in[k] = temp;
    }
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int b1[8]={11,5,4,7,3,0,9,10};
    InsertionSort(b1, 8);
    for (auto j : b1) {
            printf("從大到小  out b1: %d\n", j);
     }

    return a.exec();
}