常见经典排序算法
1.希尔排序
2.二分插入法
3.直接插入法
4.带哨兵的直接排序法
5.冒泡排序
6.选择排序
7.快速排序
8.堆排序
一.希尔(Shell)排序法(又称宿小增量排序,是1959年由D.L.Shell提出来的)
/* Shell 排序法 */
#include
void sort(int v[]...
分类:
编程语言 时间:
2014-10-18 15:34:08
阅读次数:
226
在体验了"选择排序"和"插入排序",本篇体验的是"冒泡排序",依次遍历数组中的元素,按照升序排列,如果前一个位置元素比后一个位置元素大,两者就交换位置。 自定义一个处理整型数组的类,包含添加、显示、清除及冒泡方法以及获取数组长度的属性。 class MyIntArray { private int[...
分类:
编程语言 时间:
2014-10-18 09:45:09
阅读次数:
230
算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。 普通...
分类:
编程语言 时间:
2014-10-18 09:42:58
阅读次数:
258
直接选择排序
A.第1趟从中找到最小的,与R0交换
B.第2趟从剩余中找到最小的,与R1交换
........................................................
代码如下
//直接选择排序
void Selectsort(int []a,int n)
{
//定义变量...
分类:
编程语言 时间:
2014-10-17 22:04:58
阅读次数:
247
简单选择排序:每一趟在整个记录中找到最小的那个作为有序序列的第i个记录。class SelectSort{ public void p(int[] a){ for(int i=0;ia[j]){ min=a[j]; //mi...
分类:
编程语言 时间:
2014-10-17 21:40:29
阅读次数:
225
选择排序:
原理:依次从数组最左边取一个元素,与之后的位置上的元素比较,如果大于/小于(取决于需要升序排还是降序排),则保存较大/较小元素的索引
当一轮比较后,将保存的较大/较小元素的索引与 这轮开始比较的左边元素置换
改进了冒泡排序,交换次数从O(N^2)减少到O(N), 而比较次数还是O(N^2)
/**
* 选择排序
* 比较次数 O(N^2), 交换O(N)
* @aut...
分类:
编程语言 时间:
2014-10-16 12:21:42
阅读次数:
222
下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子...
分类:
编程语言 时间:
2014-10-15 14:44:30
阅读次数:
235
排序需要掌握的有冒泡排序,插入排序和选择排序。冒泡排序: 外层循环从后往前,内存循环从前往后到外层循环,相邻数组项两两比较,将较大的值后移。插入排序: 从排序过程的中间开始(程序从第二个数组项开始a[1]),此时队列已经拍好了一部分。此时,将后边的数组项一次插入到已经排好序的部分队列中。选择排序: ...
分类:
编程语言 时间:
2014-10-14 17:28:18
阅读次数:
188
选择排序:#include#include#includeint main(){int a[7]={3,7,5,2,4,6,8};int i;int j;int temp; for(i=0;i#include#includeint main(){int a[7]={3,7,5,2,4,6,8};i....
分类:
编程语言 时间:
2014-10-13 21:37:17
阅读次数:
146
在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数其中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比較为止。程序流程:第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个....
分类:
编程语言 时间:
2014-10-12 21:24:28
阅读次数:
300