Golang的排序和查找

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.排序的基本介绍

  排序是将一组数据,依指定的顺序进行排列的过程。排序的分类如下

1>.内部排序

  指将需要处理的所有数据都家在到内存存储器中进行排序,其中包括交换式排序法,选择式排序法和插入式排序法。

2>.外部排序法

  数据量过大,无法全部加载到内存中,需要借助外部存储进行排序,其中包括合并排序法和直接合并排序法。

 

二.冒泡排序

1>.冒泡排序基本思想

  通过对待排序序列从前向后(从下标较大的元素开始),一次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元),就像水底下的气泡一样逐渐向上冒。

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

2>.代码实现

 1 package main
 2 
 3 import(
 4     "fmt"
 5 )
 6 
 7 func BubbleSort(arr *[8]int){
 8     fmt.Println("排序前arr=",(*arr))
 9     temp := 0
10 
11     for i :=0;i<len(*arr) -1;i++{
12         for j := 0;j<len(*arr)-1 -i;j++{
13             if(*arr)[j] > (*arr)[j+1]{
14                 temp =(*arr)[j]
15                 (*arr)[j] = (*arr)[j+1]
16                 (*arr)[j+1] = temp
17             }
18         }
19     }
20     fmt.Println("排序后arr=",(*arr))
21 }
22 
23 
24 func main(){
25     arr := [8]int{14,51,32,98,24,118,35,26}
26     BubbleSort(&arr)
27     fmt.Println("main arr=",arr)
28 }
bubbling.go

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-14
  • 2022-12-23
  • 2021-04-16
  • 2021-05-20
  • 2022-02-27
猜你喜欢
  • 2022-12-23
  • 2021-11-10
  • 2021-08-11
  • 2022-12-23
  • 2021-10-17
相关资源
相似解决方案