直接插入排序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef int ElemType;
typedef struct {
ElemType *ele;
int length;
} Table;
void initTable(Table &table, int length) {
table.ele = (ElemType *) malloc(sizeof(ElemType) * length);
table.length = length;
srand(time(NULL));
for (int i = 0; i < table.length; i++) {
table.ele[i] = rand() % 100;
}
}
void printTable(Table table) {
for (int i = 0; i < table.length; i++) {
printf("%3d", table.ele[i]);
}
}
void swap(int &a, int &b) {
int temp;
temp = a;
a = b;
b = temp;
}
void insetSort(ElemType *el, int length) {
int insertValue,j;
//从第二个数开始,一个自然有序
for (int i = 1; i < length; i++) {
insertValue = el[i];//保存要插入的数
for ( j = i - 1; j >= 0&&el[j] > insertValue; j--) {
el[j + 1] = el[j];
}
el[j+1] = insertValue;
}
};
int main() {
Table table;
initTable(table, 10);
printTable(table);
printf("\n");
insetSort(table.ele, 10);
printTable(table);
return 0;
}