首页 > 其他分享 >选择排序

选择排序

时间:2023-12-02 15:34:19浏览次数:48  
标签:typedef include struct int 选择 Student Sqlist 排序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
    int NO;
    int Age;
    char Name[50];
}Student;

typedef struct{
    int StudentCount; 
    Student *data;
}Sqlist;

void SelectSort(Sqlist &L)
{
    int i,j,min;
    Student p;
    for(i=0;i<L.StudentCount-1;i++)            //i到n-1 
    {
        min=i;
        for(j=i+1;j<L.StudentCount;j++)        //j到n 
            if(L.data[j].NO<L.data[min].NO)
                min=j;
        if(min!=i)
        {
            p=L.data[min];
            L.data[min]=L.data[i];
            L.data[i]=p;
        }
    }
}

int main()
{
    Sqlist L;
    L.StudentCount=4;
    L.data = (Student *)malloc(L.StudentCount * sizeof(Student));
    L.data[0].Age=20;
    strcpy(L.data[0].Name,"zhangsan");
    L.data[0].NO=1115;
    L.data[1].Age=20;
    strcpy(L.data[1].Name,"lisi");
    L.data[1].NO=1112;
    L.data[2].Age=20;
    strcpy(L.data[2].Name,"wanger");
    L.data[2].NO=1113;
    L.data[3].Age=20;
    strcpy(L.data[3].Name,"mazi");
    L.data[3].NO=1114;
    
    SelectSort(L); 
    for (int i = 0; i < L.StudentCount; i++) {
        printf("NO: %d, Age: %d, Name: %s\n", L.data[i].NO, L.data[i].Age, L.data[i].Name);
    }
    return 0;
}

 

标签:typedef,include,struct,int,选择,Student,Sqlist,排序
From: https://www.cnblogs.com/simpleset/p/17871667.html

相关文章

  • 冒泡排序
    #include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct{intNO;intAge;charName[50];}Student;typedefstruct{intStudentCount;Student*data;}Sqlist;voidbubbleSort(Sqlist&L){in......
  • 希尔排序
    #include<stdio.h>#include<stdlib.h>voidshellSort(intarr[],intn){intdk,i,j,p;for(dk=n/2;dk>=1;dk=dk/2){for(i=dk+1;i<n;i++){if(arr[i]<arr[i-dk]){p=arr......
  • 几大排序的稳定性
    ​ 八大排序总结:(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,......
  • 折半插入排序
    ACC==1升序,ACC==-1降序#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct{intNO;intAge;charName[50];}Student;typedefstruct{intStudentCount;Student*data;}Sqlist;voidBinsersort(Sql......
  • 直接插入排序
    01234528123      从下标1开始遍历,默认第一个元素是已排序序列。例如对元素3进行插入排序:下标0-3分别是2-5-8-12;此时k=arr[4]=3;j=i-1=3;从后往前遍历找到k应该插入的位置当while循环条件 j>=0&&arr[j]>k 一直成立时,arr[j+1]=ar......
  • css选择器
    这篇文章主要总结了css选择器的相关知识1.元素选择器<divid="container"><pclass="text"></p><h1class="titletext"></h1><div>//选中p元素p{font-size:12px;}2.群组选择器//html同上,同时选中p和h1元素p,h1{c......
  • SQL-排序和分组
    1.leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录innerjoin(等值连接)只返回两个表中联结字段相等的行2.当表格为空时,如何返回null值?网上找到一......
  • 为什么越来越多的企业和开发者会选择使用 Flutter?
    前言今,有很多机会可以降低移动应用程序开发的成本,而十年前唯一能做的就是构建一个原生应用程序。但是原生应用程序的缺点很明显,就是必须花费两倍的开发成本来适配iOS和Android平台差异。随着诸多跨平台方案的兴起,通过单个代码库开发适配多端的应用程序变得越来越流行。Flutt......
  • 排序算法值鸡尾酒排序(java)
    一:概述冒泡排序的每一个元素都可以像小气泡一样,根据自身的大小,一点一点地向着数组的一侧移动。算法的每一轮都是从左到右比较元素,进行单向的位置交换的。鸡尾酒排序做了怎样的优化:鸡尾酒排序的元素比较和交换过程是双向的。二:举例子由9个数字组成的无序数列{2,3,4,5,6,7,1,9......
  • Spring AOP中动态代理的选择
    SpringAOP的实现是通过动态代理,并且有两种实现方式,分别是JDK动态代理和CGLib动态代理。Spring默认使用JDK动态代理,只有在类没有实现接口时,才会使用CGLib。JDK的动态代理存在限制,那就是被代理的类必须是一个实现了接口的类,代理类需要实现相同的接口,代理接口中声明的方法。若需要......