1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 #define maxsize 100 5 typedef struct 6 { 7 int key; 8 int num; 9 } redtype; 10 typedef struct 11 { 12 redtype r[maxsize+1]; 13 int length; 14 } SqList; 15 void Insertsort(SqList &L) 16 {//直接插入排序 17 int i=0,j=0; 18 for(i=2;i<L.length;++i) 19 if(L.r[i].key<L.r[i-1].key) 20 { 21 L.r[0]=L.r[i]; 22 for(j=i-1;L.r[0].key<L.r[j].key;--j) 23 L.r[j+1]=L.r[j]; 24 // L.r[j].key=L.r[0].key; 25 L.r[j+1]=L.r[0]; 26 } 27 28 } 29 void maopao(SqList &L) 30 {//冒泡排序法31 //int temp; 32 int i=0, j=0; 33 for(i=1;i<L.length;i++) 34 for(j=i+1;j<L.length;j++) 35 36 if(L.r[i].key>L.r[j].key) 37 { 38 L.r[0]=L.r[i]; 39 L.r[i]=L.r[j]; 40 L.r[j]=L.r[0]; 41 42 } 43 44 45 } 46 void ZhiJie(SqList &L) 47 {//直接选择排序 48 int i=0,j=0,k=0; 49 for(i=1;i<L.length;i++) 50 { 51 k=i; 52 for(j=i+1;j<L.length;j++) 53 54 55 if(L.r[k].key>L.r[j].key) 56 k=j; 57 if(k!=i) 58 { 59 L.r[0]=L.r[i]; 60 L.r[i]=L.r[k]; 61 L.r[k]=L.r[0]; 62 } 63 } 64 65 66 } 67 int main() 68 { 69 int i=0; 70 SqList st; 71 72 st.r[1].key=49; 73 st.r[2].key=38; 74 st.r[3].key=65; 75 st.r[4].key=49; 76 st.r[5].key=76; 77 st.r[6].key=13; 78 st.r[7].key=27; 79 st.r[8].key=52; 80 81 st.length=9; 82 // Insertsort(st); 83 // maopao(st); 84 ZhiJie(st); 85 for(i=1;i<9;i++) 86 cout<<st.r[i].key<<endl; 87 return 0; 88 89 90 }
数据结构关于直接插入排序、冒泡排序、直接选择排序的实现,布布扣,bubuko.com
原文:http://www.cnblogs.com/best001/p/3581201.html