数组之排序和查找

排序之冒泡排序

内部排序

数据量较小,将需要处理的所有数据都加在到内部存储器中进行排序

交换式排序法(冒泡排序Bubble sort,快速排序quick sort)

冒泡排序法

通过对 带排序序列从后向前(从下表较大的元素开始),一次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后部移向前部(从下标较大的单元移向下表较小的单元)

优化思想:

因为在排序的过程中,各元素不断接近自己的位置,如果一次比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag 判断元素是否进行过交换,从而减少不必要的比较

图文讲解

代码实现

func BubbleSort(arry *[5]int){
    temp := 0  //临时变量,用来存储交换的值

    for i := 0; i < len(*arry) - 1;i++{
        for j := 0; j < len(*arry) -1 - i;j++{
            if (*arry)[j] > (*arry)[j+1]{
                temp = (*arry)[j]
                (*arry)[j] = (*arry)[j + 1]
                (*arry)[j + 1] = temp
            }
    }}
}

func main(){
    var arry [5]int = [5]int{11,3,444,5,6}
    BubbleSort(*arry)
    
}

选择式排序法

插入式排序法

外部排序

数据量过大,无法全部加在到内存中,需要借助外部存储进行排序

合并排序法

直接合并排序法

posted @ 2021-09-22 13:13  河图s  阅读(52)  评论(0)    收藏  举报