c++排序

来源:互联网 发布:js块作用域 编辑:程序博客网 时间:2024/06/10 03:54

想总结下常用排序并自己实现:

首先,第一个:

1.直接插入排序 (2015-10-18)

基本思想:每次将一个待排序额记录按其关键码的大小插入到一个已经排好序的有序序列中,直到全部记录排好序。


//直接插入排序(从小到大),r[]为待排序数组,n为待排序数的总数  void InsertSort(int r[], int n)  {     int tem;for (int i=1; i<n; i++)//初始有序区为第一个数{int pos=0;//位置while (pos < i &&r[i]>r[pos])//在有序区插入新数{pos ++;}for(int j =pos;j<i;j++ )//找到位置pos,依次与下一个数交换直到有序区排完{tem = r[j];r[j] = r[i];r[i] = tem;}}for(int k=0;k<n;k++)//输出排序数组cout<<r[k]<<" ";     cout<<"\n";  }  

2.冒泡排序(2015-10-18)

基本思想:起泡排序是交换排序中最简单的排序方法,其基本思想是: 两两比较相邻记录的关键码,如果反序则交换,直到没有反序的记录为止。


//冒泡排序void BubbleSort(int r[],int n){int pos = n-1;//pos为标记位置,即数组下标while (pos >= 1){for(int i = 0;i<pos;i++){if(r[i]>r[i+1])//反序则交换{int tem = r[i+1];r[i+1] = r[i];r[i] = tem;}}pos--;}for(int i = 0;i < n;i++){cout << r[i] << " ";}}


 





0 0
原创粉丝点击