zoukankan      html  css  js  c++  java
  • 十大排序算法

    权威文章:https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

    1. 冒泡排序
    2. 选择排序
    3. 插入排序
    4. 希尔排序

    一、冒泡排序

    解释:冒泡排序就是外层控制循环次数,内层控制将相邻的2个数据依次比较,结束后将在一端出现最大值/最小值

    void bubbleSort(int data[],int size) {
        for (int i = 0; i < size-1; i++) {
            for (int j = 0; j < size-i-1; j++) {
                if (data[j] < data[j + 1]) {
                    int temp = data[j];
                    data[j] = data[j+1];
                    data[j+1] = temp;
                }
            }
        }
    }

    二、选择排序

     解释:选择排序是依次找与当前元素比较,外层控制每个选组参与比较,内层控制其他元素与当前元素比较,判断是否需要交换。优化的是记录下标,内层遍历完再确定是否需要交换

    void selectSort(int *arr,int size) {
        int index, temp;
        for (int i = 0; i < size-1; i++) {
            index = i;
            for (int j = i + 1; j < size; j++) {
                if (arr[j] > arr[index]) {
                    index = j;
                }
            }
            if (index != i) {
                temp = arr[index];
                arr[index] = arr[i];
                arr[i] = temp;
            }
        }
    }

    三、插入排序

     图解:插入排序认为当前元素之前的序列已经是有序的,只需要找到需要插入的位置,进行插入

    void insertSort(int* arr, int size) {
        int temp,j,i;
        for (i = 1; i < size ; i++) {
            temp = arr[i];
            for (j = i-1; j > -1; j--) {
                if (temp < arr[j]) {
                    arr[j+1] = arr[j];
                }
                else {
                    break;
                }
            }
            arr[j+1] = temp;
        }
    }
  • 相关阅读:
    小Z的袜子
    C#操作XML
    C#中接口的实现方法
    C#邮箱批量注册
    C# 委托的使用
    C# socket
    在C#.net中如何操作XML
    C#接口的基础知识
    C#判断网页中是否含有某字符串
    C#多线程处理多个队列的数据
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/14004636.html
Copyright © 2011-2022 走看看