选择和插入排序

来源:互联网 发布:浏览器打不开淘宝 编辑:程序博客网 时间:2024/05/21 11:04
#include <stdio.h>int InserSort(int arr[], int len){    int i, j, k;    int target;    # 默认第一个元素有序,因此,i从1开始。    for(i=1; i<len; i++)    {        # j为待插入数据的下标,target为待插入的数据。        j = i;        target = arr[i];        while(j>0 && target < arr[j-1])        {            # 将待插入数据前面的数据提取到待插入数据所在位置,            # 稍后会将待插入数据向前移动。            arr[j] = arr[j-1];            j--;        }        # 向前移动待插入数据        arr[j] = target;        k = 0;        while(k<len)        {            printf("%d", arr[k]);               k++;        }        printf("\n");    }    return 0;}int SelectSort(int arr[], int len){    int i, j, min;    for(i=0; i<len-1; i++)    {        min = i;            for(j=i; j<len; j++)        {            if(arr[min] > arr[j]){                min = j;                }           }        if(min != i){            arr[min] = arr[i] - arr[min];                   arr[i] = arr[i] - arr[min];                 arr[min] = arr[i] + arr[min];               }        for(j=0; j<len; j++)        {            printf("%d",arr[j]);        }        printf("\n");    }    return 0;}int main(){    int arr[5] = {5,8,3,9,2};    printf("****Insert Sort****:\n");    InserSort(arr, 5);    printf("\n****Select Sort****:\n");    SelectSort(arr,5);    return 0;}
0 0
原创粉丝点击