美文网首页
排序算法总结

排序算法总结

作者: 乱蓬头199302 | 来源:发表于2017-07-13 14:38 被阅读0次

摘要:1、冒泡排序 冒泡排序是一种简单的排序方法,算法如下: 1. 首先将所有待排序的数字放入工作列表中。 2. 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

1、冒泡排序

冒泡排序是一种简单的排序方法,算法如下:

1. 首先将所有待排序的数字放入工作列表中。

2. 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

3. 重复2号步骤(倒数的数字加1。例如:第一次到倒数第二个数字,第二次到倒数第三个数字,依此类推...),直至再也不能交换。

用C语言实现如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14intBubbleSort(int*a,intn)//a是待排序的整型数组,n是待排序数组的元素个数

{

inti,j,temp;

for(j=0;j

for(i=0;i

{

if(a[i]>a[i+1])//数组元素大小按升序排列

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

}

}

2、插入排序

插入排序也是一种简单排序方法,算法如下:

1. 从第一个元素开始,认为该元素已经是排好序的。

2. 取下一个元素,在已经排好序的元素序列中从后向前扫描。

3. 如果已经排好序的序列中元素大于新元素,则将该元素往右移动一个位置。

4. 重复步骤3,直到已排好序的元素小于或等于新元素。

5. 在当前位置插入新元素。

6. 重复步骤2。

用C实现如下:

?

1

2

3

4

5

6

7

8

9

10

11

12intinsert(int*a,intn)

{

inti, j, temp;

for(i=1; i

{

temp=a[i];

for(j=i; j>0 && a[j-1]>temp; j--)

a[j]=a[j-1];

a[j]=temp;

}

3、选择排序

选择排序的思想如下:

1. 设数组内存放了n个待排数字,数组下标从1开始,到n结束。

2. i=1

3. 从数组的第i个元素开始到第n个元素,寻找最小的元素。(具体过程为:先设arr[i]为最小,逐一比较,若遇到比之小的则交换)

4. 将上一步找到的最小元素和第i位元素交换。

5. 如果i=n-1算法结束,否则回到第3步

用C语言实现如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18intsort(int*a,intn)

{

inti, j, min, temp;

for(i=0; i

{

min=i;

for(j=i+1; j

if(a[min]>a[j])

min=j;

if(min != i)

{

temp=a[min];

a[min]=a[i];

a[i]=temp;

}

}

4、快速排序

(a)一趟排序的过程:

(b)排序的全过程

实践证明,快速排序是所有排序算法中最高效的一种。它采用了分治的思想:先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序,这样整个列表就有序了。

快速排序的基本算法是:

原文链接

相关文章

  • iOS算法总结-堆排序

    iOS算法总结-堆排序 iOS算法总结-堆排序

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 面试常问的排序算法

    排序算法总结 排序是算法问题中的经典问题。为什么要总结排序算法呢?你懂的 : (假设所有的排序都是要求最终结果为:...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 排序算法

    一、排序算法总结 排序算法题目 排序算法快速排序堆排序归并排序 应用最小K个数(TopK问题)215.数组中的第K...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • Swift的十大经典排序算法总结

    Swift的十大经典排序算法总结 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排...

  • 算法-排序算法总结

    排序类型总结 1 排序算法基础实现 2 排序算法应用 2.1 基础排序 2.2 计数排序应用 2.3 快排应用 2...

  • 排序算法最强总结及其代码实现(Python/Java)

    前言 本文总结了常用的全部排序算法,内容包括: 排序算法的定义和思路 排序算法的代码实现:Python和Java,...

网友评论

      本文标题:排序算法总结

      本文链接:https://www.haomeiwen.com/subject/ofbwhxtx.html