C++数据结构-直接插入排序
2018-12-05 08:58
92 查看
#include <iostream> #define N 12 using namespace std; /** *将46,74,16,53,14,26,40,53,86,65,27,34从小到大排序 *直接插入排序方法 *基本思想:依次从待排序数列中取出一个元素,跟前面已经排序好的有序数列从后往前比较后,插入到有序数列的适当位置 */ void direct_sort(int *nums) { //直接插入排序 int i,j; for(i=2;i<=N;i++) //初始时候默认待排序的第一个元素已经先插入进去了 { if(nums[i]<nums[i-1]) { nums[0]=nums[i]; //把待插入的值存在nums[0]上,这时候的nums[i]就可以存放数字后移的值 for(j=i-1;nums[j]>nums[0];j--) //每次要插入的时候,都是将这张卡同最后一张卡向前逐一比较,前面的卡因为已经排过了,是有序的 { //每次比较的结果要是插入的值比较小,则当前已排好的数值往后移动一位,移动到nums[i],倒二张卡移动到nums[i-1].... nums[j+1]=nums[j]; } nums[j+1]=nums[0]; //跳出循环,表明现在插入值已经比较大了,此时把nums[0]存放的插入值,插入到这个位置中 } } //打印数据 for(i=1;i<=N;i++) { cout<<nums[i]<<endl; } } int main() { //初始化待排序数列 int nums[N+1]={0,46,74,16,53,14,26,40,53,86,65,27,34}; //直接插入排序 direct_sort(nums); return 0; }
相关文章推荐
- C++代码,数据结构-内部排序-插入排序-直接插入排序
- 数据结构复习:直接插入排序与二分插入排序的C++实现
- 数据结构 - 直接插入排序(Straight Insertion Sort) 详解 及 代码(C++)
- C++数据结构--直接插入排序
- c++实现数据结构中的各种排序方法:直接插入、选择,归并、冒泡、快速、堆排序、shell排序
- 图解"数据结构--内部排序算法"----插入排序:直接插入排序、希尔排序
- 【数据结构----笔记3】插入排序算法之【直接插入排序】
- 10-1-直接插入排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版
- 小蚂蚁学习数据结构(35)——直接插入排序
- 【数据结构】直接插入排序_哨兵位
- 数据结构-排序算法之插入排序(直接插入,二分插入,希尔,表插入)
- 算法与数据结构(四)--插入排序(直接插入排序)
- 数据结构排序--直接插入和希尔排序
- 直接插入排序 C++
- 数据结构-插入排序之直接插入排序
- 直接插入排序的C++实现代码
- c++学习之--排序2-直接插入排序
- 直接插入排序 - 数据结构和算法90
- PHP数据结构之直接插入排序
- 经典算法与数据结构的c++实现——直接选择排序