您的位置:首页 > 其它

算法--排序

2016-07-23 18:04 162 查看
选择排序

(一)解题思路:

1、第一轮排序,在随机数组中选出最小的记录,将它第1个记录交换,使有序区记录个数增加1个(即记录个数变为1个),随机数组记录个数减少1个。

2、第二轮排序,在随机数组中选出未排序中最小的记录,将它随机数组的第2个记录交换,使有序区记录个数增加1个(即记录个数变为2个), 随机数组记录个数减少1个。

3、如此下去,重复以上过程,直至最终完成排序。

(二)代码如下:

For i = 1 To 9	For j = i + 1 to 10	if a(j) < a(i) then		t = a(i)  		a(i)=a(j)		a(j)=t	end if     next jnext i
(三)图形表示

    


(四)选择排序舞蹈视频链接
           http://v.game.sohu.com/play_35218033.html?fromvsogou=1

 

冒泡排序

(一)解题思路

    1、第一轮,首先比较第1个和第2个数,将小数放前,大数放后;然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一轮结束,将最大的数放到了最后。

     2、第二轮,仍从第一个数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二轮结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

      3、如此下去,重复以上过程,直至最终完成排序。

(二)代码表示

For i = 1 + 9	For j = 1 to 10-i	  if a(j) < a(j+1) then             t = a(i)             a(j)=a(j+1)             a(j+i)=t          end if       next jnext i

(三)图形表示



 
(四)冒泡排序舞蹈视频链接

       http://v.ku6.com/show/wXbEz_f1u8eB3D8ngrHmOg...html?fromvsogou=1

插入排序

(一)解题思路(从大到小排列)

  第一轮,一组无序数列,从第二个开始,与第一个数比较,若第二个数大于第一个数,则第二个数前插,第一个数后移,前两个数则形成有序区;

第二轮,第三个数依次与前两个数从后像前比较,然后将第三个数插入有序区内。

第三轮,依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。

(二)代码表示
for j = i - 1 to 1 step - 1
if  a (j + 1) > a(j) then  exit for
tmp = a(j + 1)
a(j + 1)=a(j)
a(j) = tmp
next j


(三)图形表示



(四)插入排序舞蹈视频连接

http://v.youku.com/v_show/id_XMTY0NjQ2ODY5Ng==.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: