几种排序的方法

你的名字 2022-05-21 06:11 455阅读 0赞

1、冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

  1. void bubbletSort(int a[],int n)
  2. {
  3. int i,j;
  4. int temp=0;
  5. for (i=0;i<n-1;i++)
  6. {
  7. for (j=i+1;j<n;j++)
  8. {
  9. if (a[i]>a[j])
  10. {
  11. temp=a[i];
  12. a[i]=a[j];
  13. a[j]=temp;}
  14. }
  15. }
  16. }

2、简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。

  1. void selectsort(int *a,int n)
  2. {
  3. int i;
  4. int j;
  5. int temp = 0;
  6. int flag = 0;
  7. for(i = 0; i < n-1; i++) // 大循环,用于控制程序不再对已经排好序的数进行操作
  8. {
  9. temp = a[i];
  10. flag = i;
  11. for(j = i+1; j < n; j++) // 小循环,用于从前往后扫描数组并选择最小数
  12. {
  13. if(a[j] < temp)
  14. {
  15. temp = a[j];
  16. flag = j; // 目前最小的元素的下标
  17. }
  18. }
  19. if(flag != i) // 如果最小的元素不是进行筛选的数据中的第一个,则将最小数据与第一个筛选数据交换
  20. {
  21. a[flag] = a[i];
  22. a[i] = temp;
  23. }
  24. }
  25. }

3、插入排序法:输入一个元素,检查 数组 列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕。

  1. void InsertSort(int *a,int length)
  2. {
  3. int i,j;
  4. for(i=1;i<length;i++)
  5. {
  6. int key=a[i];
  7. for(j=i-1;j>=0;j--)
  8. {
  9. if(key>a[j])
  10. break;
  11. else
  12. {
  13. a[j+1]=a[j];
  14. a[j]=key;
  15. }
  16. }
  17. }
  18. }

发表评论

表情:
评论列表 (有 0 条评论,455人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js数组排序方法

    1、冒泡排序 以从小到大排序为例,冒泡排序的原理就是通过两层循环把数组中两两相邻的元素进行比较,是的大的元素放到后边,元素交换位置,从而一步步的交换元素的位置,使得最大的元素

    相关 Java实现常见排序方法

    日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重

    相关 排序方法

    1、冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个

    相关 实现数组排序方法

    冒泡排序 这里先介绍一下冒泡排序。 1. 其原理就是相邻的两个元素进行比较,如果第一个元素大于第二个元素,则交换这两个元素的位置。如此两两比较然后交换,一轮下来,最大的元

    相关 排序都有哪方法

          排序都有哪几种方法? 排序的方法有:     插入排序(直接插入排序、希尔排序),     交换排序(冒泡排序、快速排序),     选择排序(直接选择排序