排序法总结(一)——三种基本排序方法

排序法总结(一)——三种基本算法
一、 选择排序法
网上的解释:选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.
我理解的是:先假设第一个最大(小)为a(0),然后把它挑出来,然后和后面的数进行比较,如果比到出现一个比a(0)大(小)的数a(2),就把a(0)和a(2)交换,用a(2)接着往下比直到找出一个最大(小)的数确定下来。然后重复以上过程在找出第二大(小)的数,以此类推按大到小(从小到大)排好整个数列。
(假设的思想—假设一个数最大)

排序法总结(一)——三种基本排序方法_第1张图片

代码:

For i=1 to 9
		For j=i+1 to 10
			If a(i) < a(j) Then
				t = a(i)
				a(I) = a(j)
				a(j) = t
			End if
		Next j
	  Next i

二、 冒泡排序法
冒泡排序算法的运作如下:(从后往前)

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    (相邻的元素交换)
    排序法总结(一)——三种基本排序方法_第2张图片

代码如下:

		For i = 1 to 9
			For j =1 to 10-i
				If a(j) < a(j+1) Then
					t=a(j) 
					a(j)=a(j+1)
					a(j+1)=t
				End if
           Next j
		Next i

三、 插入排序法
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
(分为直接插入法和折半插入法)

代码如下:

For i = 2 To 10
  If a(i) > a(i - 1) Then
    t = a(i)
    For j = i - 1 To 1 Step -1
      If t < a(j) Then Exit For
      a(j + 1) = a(j)
    Next j
    a(j + 1) = t
  End If
 Next i

总结:这三种排序方法只是我们了解排序的基础,在学会了这三种排序的基础上我们才能,对其加以优化,加快运算效率。

你可能感兴趣的:(【算法探索】,算法探究)