总结下常用的排序算法,方便以后查阅。 常见排序算法:冒泡排序、选择排序、插入排序、壳(shell)排序、合并排序、快速排序、堆排序。 要选择合适的算法,需考虑的因素:执行时间、存储空间和编程工作。 1、选择排序 具有二次方程增长阶,近适用于小列表排序。 通过列表反复扫描,每次扫描选择一项,然后将这一
分类:
编程语言 时间:
2016-03-06 18:56:42
阅读次数:
246
对于一个int数组,请编写一个选择排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
class SelectionSort {
public:
int* selectionSort(int* A, int n){
// write code ...
分类:
编程语言 时间:
2016-03-05 16:28:26
阅读次数:
276
1选择排序是a【0】分别与后面的元素比较,若比a【0】小,就交换,这样就找出了最小的值。 然后a【1】分别与后面的元素比较,若比啊【1】小,就交换这样就找出了第二小的值。 循环下去,就可以实现排序。 java代码如下 public static void sort(int[] arr)//选择排序
分类:
编程语言 时间:
2016-03-05 11:32:44
阅读次数:
142
题目: 让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出 (1)方法1 方法1:先将数组元素原先的对应位置记录在另一个数组中 并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 /* 选择法排序 并在排序后的数组元素在原先数组的对应位置输出 方法1:先将
分类:
编程语言 时间:
2016-03-03 17:36:22
阅读次数:
224
堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 (最大化堆或大顶堆) 其中
分类:
编程语言 时间:
2016-03-03 01:24:10
阅读次数:
255
1,选择排序的原理 1.1 选择排序就是会依次利用每一位索引上的值,与它后面的所有值进行比较,而且在每经过一轮比较,最值就会出现在最前面 2,冒泡排序的原理 2.1 冒泡排序的原理就是两个相邻的元素进行比较,每比较一轮,最值就会出现在最后面 #include <stdio.h>void getLow
分类:
编程语言 时间:
2016-03-01 20:51:59
阅读次数:
135
选择排序—简单选择排序选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子系列的最后,直到全部记录排序完毕。简单选择排序也叫直接选择排序。基本算法:将给定待排序序列A[0....n],第一次从A[0]~A[n-1]中选取最小值,与A[0]交换,第二..
分类:
编程语言 时间:
2016-02-28 01:16:16
阅读次数:
248
上面一片博文探讨了关于的java选择排序(冒泡排序和快速排序)本章将继续探讨java排序之插入排序,插入排序分为直接插入排序和希尔排序两种。1.直接插入排序思想:在需要排序的一组数据中假设前该数组的前n-1(n>=2)个数是已经排好序的,现在要把第n个数插入到前面的n-1个数..
分类:
编程语言 时间:
2016-02-28 01:12:52
阅读次数:
263
分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 先来看看8种排序之间的关系: 1.直
分类:
编程语言 时间:
2016-02-26 16:44:34
阅读次数:
309