选择 插入 快速 冒泡排序算法的比较
2014-03-07 08:55
169 查看
测试的效率:
1.快速排序 >直接 插入排序 >选择排序 >冒泡排序
算法描述:
①快速排序:暂时留着
②直接插入排序:将待排序的数据分为两组,一组是排序的,一组是未排序的。然后选择没有排序的一个元素往已经排序的数据中插入。直到排序完截止。
3.选择排序:每次选出一个最小的,然后和最初比较的进行交换。
④冒泡排序:相邻的两个元素进行比较,然后交换。如果某次排序中没有交换则停止。
1.快速排序 >直接 插入排序 >选择排序 >冒泡排序
算法描述:
①快速排序:暂时留着
②直接插入排序:将待排序的数据分为两组,一组是排序的,一组是未排序的。然后选择没有排序的一个元素往已经排序的数据中插入。直到排序完截止。
3.选择排序:每次选出一个最小的,然后和最初比较的进行交换。
④冒泡排序:相邻的两个元素进行比较,然后交换。如果某次排序中没有交换则停止。
void Sort: :QuickSort(int a[], int p, int r) { if (p < r) { int q = Partition(a, p, r); QuickSort(a, p, q - 1); QuickSort(a, q + 1, r); } } int Sort: :Partition(int a[], int p, int r) { int x = a[r]; //通常,拿最后一个值,作为预期的中间值 int middle = p; //记录“较小的一段数据”的最大下标。通常这个值在p和r的中间,故起名middle for (int j = p; j < r; j++) { if (a[j] < x) { if (j != middle) { int temp = a[middle]; a[middle] = a[j]; a[j] = temp; } middle++; } } int temp = a[r]; a[r] = a[middle]; a[middle] = temp; return middle; } //插入排序 void Sort: :InsertSort(int iList[], int iNum) { int iTemp, j; for (int i = 1; i < iNum; i++) { iTemp = iList[i]; for (j = i; j > 0 && iList[j - 1] > iTemp; j--) { iList[j] = iList[j - 1]; } iList[j] = iTemp; } } //冒泡排序算法 void Sort: :BubleSort(int iList[], int iNum) { int iTemp; bool bChange = true; for (int i = 0; (i < iNum - 1) && bChange; ++i) { bChange = false; for (int j = 0; j < iNum - 1 - i; ++j) { if (iList[j] > iList[j + 1]) { SWAP(iList[j], iList[j + 1], iTemp); bChange = true; } } } } //选择排序算法 void Sort: :SelectSort(int iList[], int iNum) { int iTemp, iMin; for (int i = 0; i < iNum; ++i) { iMin = i; for (int j = i + 1; j < iNum; ++j) { if (iList[iMin] > iList[j]) { iMin = j; } } SWAP(iList[iMin], iList[i], iTemp); } }
相关文章推荐
- 比较排序总结——直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序
- 数据结构(C#)--冒泡、插入、快速、堆、归并、希尔、选择各种排序排序过程比较以及各种排序的所用时间的对比
- python(三)6种排序算法性能比较(冒泡、选择、插入、希尔、快速、归并)
- 简单选择,冒泡,插入,快速排序之效率比较
- 插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序算法比较
- 小白学数据结构——四、排序算法Python(冒泡、选择、快速、插入、希尔、归并排序)
- java实现排序(冒泡、选择、快速、插入)
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 冒泡,插入,折半插入,希尔,快速,简单选择排序源码总结
- 冒泡、选择、快速、插入、希尔、归并排序算法的小结
- 常用排序算法--冒泡,插入,选择,希尔,归并,快速
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- 字符串排序算法(冒泡、选择、插入、希尔、快速)
- 序算法总结——冒泡,快速,选择,插入,希尔,归并
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- C语言排序实例(选择、冒泡、插入、折半、快速)
- 快速、冒泡、选择、直接插入C语言实现
- 排序算法(冒泡、快速、选择、插入)
- 1. C#数据结构与算法 -- 排序(插入,冒泡,希尔,快速,选择)