当前位置: 首页 > 编程笔记 >

ruby实现的插入排序和冒泡排序算法

洪鹏海
2023-03-14
本文向大家介绍ruby实现的插入排序和冒泡排序算法,包括了ruby实现的插入排序和冒泡排序算法的使用技巧和注意事项,需要的朋友参考一下


1、插入排序

seq = [3,4,9,0,2,5,9,7,1]

1.upto(seq.length-1) do |i|   if seq[i] < seq[i-1]     tmp = seq[i]     j = i-1     while(j>=0 && tmp<seq[j]) do       seq[j+1] = seq[j]       j=j-1     end     seq[j+1]=tmp   end end

seq.each {|num| puts num}

2、冒泡排序

seq = [3,4,9,0,2,5,9,7,1,100,99,24,64,18,88,66]

0.upto(seq.length-1) do |i|   exchange = false    0.upto(seq.length-1-i-1) do|j|      if seq[j]>seq[j+1]        tmp = seq[j+1]        seq[j+1] = seq[j]        seq[j] = tmp        exchange = true      end    end

  if !exchange     break   end end

seq.each {|num| puts num}

 类似资料:
  • 主要内容:冒泡排序算法的具体实现冒泡排序是所有排序算法中最简单、最易实现的算法,有时也称为起泡排序算法。 使用冒泡排序算法对 n 个数据进行排序,实现思路是:从待排序序列中找出一个最大值或最小值,这样的操作执行 n-1 次,最终就可以得到一个有序序列。 举个例子,对 {14, 33, 27, 35, 10} 序列进行升序排序(由小到大排序),冒泡排序算法的实现过程是: 从 {14, 33, 27, 35, 10} 中找到最大值

  • JavaScript算法-冒泡排序 冒泡排序 最慢的排序算法之一 冒泡排序,之所以这幺叫是因为使用这种排序算法排序时,数据值就会像气泡一样从数组的一端漂浮到另一端。假设正在将一组数字按照升序排列,较大的值会浮动到数组的右侧,而较小的值会浮动到数组的左侧。之所以会产生这种现象是因为算法会多次在数组中移动,比较相邻的数据,当左侧值大于右侧值时将它们进行互换。 function bubbleSort()

  • 冒泡排序 from typing import List """ 核心思想是循环length-1次,每次循序找出最大或者最小的一个数,每次比较相邻的两个数,如果大或者小就交换位置,每一次循环可以比较当次最大的一个数。 例如 3, 10, -1, 20,8 - 第一次循环 1. 指针下移指向 3 3和10比较 不交换 3 10 -1 20 8 2. 指针下移指向 10 10>-1 交换

  • 我已经在链接中看到了(http://bigocheatsheet.com/)插入排序的复杂性与冒泡排序相同,堆排序也优于这两种排序。但是,当我创建一个示例程序并比较插入排序所花费的时间时,我感到难以置信。 类用于测试排序算法。 泡泡排序类 用于插入排序的类 堆排序类 用于创建数组的类 我尝试了所有的情况,比如最好的情况、最坏的情况和一般情况。但在所有情况下,插入排序都比冒泡排序和堆排序快得多。理论

  • 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位