1.冒泡算法效率最低。 2.插入算法效率最高。 3.选择算法是冒泡算法的3.3倍。 4.插入算法是冒泡算法的4.7倍。 5.插入算法是选择算法的1.4陪。
冒泡排序:比较 (N-1)+(N-2)+...+2+1 = N*(N-1)/2=N2/2 交换0——N2/2 = N2/4 总时间 3/4*N2 选择排序:比较 (N-1)+(N-2)+...+2+1 = N*(N-1)/2=N2/2 交换0——3*(N-1)=3*(N-1)/2=3/2*N 总时间 N2/2+3/2*N 插入排序:第一轮最多比较一次,第二轮最多比较俩...
1.冒泡算法效率最低。 2.插入算法效率最高。 3.选择算法是冒泡算法的3.3倍。 4.插入算法是冒泡算法的4.7倍。 5.插入算法是选择算法的1.4陪。
id obj2);@interface NSMutableArray (JXSort)// 选择排序- (void)jx_selectionSortUsingComparator:(JXSortComparator)comparator didExchange:(JXSortExchangeCallback)exchangeCallback;// 冒泡排序- (void)jx_bubbleSortUsingComparator:(JXSortComparator)comparator didExchange:(JXSortExchange...
一、数组的排序算法 1.选择排序 选择排序是指每次选择所需排序数组中的最大值或者最小值(根据排序方式选择,从大到小选最大,从小到大选最小),将这个元素与前面没有进行排序的元素交换。 下面以1 4 2 5 9 6这些乱序元素,来表现排序过程。 第一次排序 9 4 2 5 1 6 ...
至于其他的,拿插入排序举例:插入排序的基本思想是每次将一个待排的记录按其关键字大小插入到前面已经排好序的子序列中.试想,如果已经排好序的子序列是123,待排记录为45,插入4时,只要和3比较一次就知道排在3后面,对5排序时只要与4比较一次就知道该排在4后面,共比较2次.如果已经排好序的子序列是234,待排...
试通过随机的数据比较几种主要的基本算法的关键字比较次数和关键字移动次数,以取得直观感受。 三、流程图 冒泡排序 否 是 否 否 简单选择排序 直接插入排序 希尔排序 快速排序 四、源程序代码 #define N 10 int compare[6]={0,0,0,0,0,0},change[6]={0,0,0,0,0,0}; void input(int s[]) { ...
交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2;(2)快速排序法。 插入类排序法:(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;(2)希尔排序法,最坏情况需要O(n1.5)次比较。 选择类排序法:(1)简单选择排序法,最坏情况需要n(n-1)/2次比较;(2)堆排序法,最坏情况需要O(nlog2n)次比较...
(2)简单插入排序法:在简单插入排序法中,每一次比较后最多 移掉一个逆序,因此,这种排序方法的效率冒泡排序法相同。在最坏情况下,简单插入排序需n(n-1),2次比较。(3)简单选择排序法:对于长度为n的序列,选择排序需扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素子表中的第一个...
冒泡排序:时间复杂度O(n*n),可以从前向后,也可以从后向前进行排序,从后向前(自我感觉还是从后向前好,冒泡不就是向上冒),把最后一个和倒数第二个进行性比较,如果比第一个小就进行交换,这样小的数就换到了倒数第二个,倒数第二个再和倒数第三个进行比较,小再进行交换,直至最小的数被放到了第一个,之后再从...