C++实现直接插入排序
生活随笔
收集整理的這篇文章主要介紹了
C++实现直接插入排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
using namespace std;#define SIZE_A 9int main(){void myshow(int* p,int length);//函數提前聲明int list[SIZE_A]={-1,49,38,65,97,76,13,27,49};cout<<"排序前:"<<endl;myshow(list,SIZE_A);//直接插入排序,位置【0】為哨兵位置,真正要排序的數據在位置【1】~【length-1】for(int i=2;i<sizeof(list)/sizeof(int);i++){list[0]=list[i];//位置【0】為哨兵for(int j=i-1;j>=0;j--){//在前(i-1)個已排好序的局部表中找到第i個元素的位置。if(list[0]<list[j]){//從右往左逐一比較,并向右移位list[j+1]=list[j];}else{list[j+1]=list[0];break;}}}cout<<"排序后:"<<endl;myshow(list,SIZE_A);return 0;}
/*
description:
在標準輸出設備上顯示數組元素。
parameter:
int* p:指向整形數組首元素的指針
int length:整形數據長度
*/
void myshow(int* p,int length){for(int i=0;i<length;i++){cout<<*(p+i)<<"\t";}cout<<endl;
}
運行結果如下:
時間及空間復雜度分析
總結
以上是生活随笔為你收集整理的C++实现直接插入排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两个有序线性表的合并(线性表使用 Vec
- 下一篇: C++实现折半插入排序