首页 > 其他分享 >c: Selection Sort

c: Selection Sort

时间:2023-09-19 23:00:14浏览次数:30  
标签:Sort Selection int lensize printf sizeof include data

SortAlgorithm.h

/*****************************************************************//**
 * \file   SortAlgorithm.h
 * \brief  业务操作方法
 * VSCODE   c11  https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/2.selectionSort.md
 * \author geovindu,Geovin Du
 * \date   2023-09-19
***********************************************************************/
#ifndef SORTALGORITHM_H
#define SORTALGORITHM_H

#include <stdio.h>
#include <stdlib.h>


int* BubbleSort(int* data,int lensize);

void selection_sort(int arr[], int len);



#endif //SORTALGORITHM_H

  

SortAlgorithm.c

/*****************************************************************//**
 * \file   SortAlgorithm.c
 * \brief  业务操作方法
 * VSCODE   c11  https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/2.selectionSort.md
 * \author geovindu,Geovin Du
 * \date   2023-09-19
***********************************************************************/


#include <stdio.h>
#include <stdlib.h>


/**1。冒泡排序法 ElementType data[] **/
int* BubbleSort(int* data,int lensize)
{
    int i,j,tmp;
    int* newdate;
	/* 原始数据 */
    //int lensize=sizeof(data) / sizeof(data [0]);//sizeof(data); //sizeof(data) / sizeof(data[0]);//
	printf("2共 長度是:%d ",lensize);
	printf("冒泡排序法:\n原始数据为:");
	for (i=0;i<lensize;i++)
		printf("%3d",data[i]);
	printf("\n");

	for (i=(lensize-1);i>=0;i--)		/* 扫描次数 */
	{
		for (j=0;j<i;j++)/*比较、交换次数*/
		{
			if (data[j]>data[j+1])	/* 比较相邻两数,如第一个数较大则交换 */
			{
				tmp=data[j];
				data[j]=data[j+1];
				data[j+1]=tmp;
			}
		}
		printf("第 %d 次排序后的结果是:",lensize-i); /*把各次扫描后的结果打印出来*/
		for (j=0;j<lensize;j++)
			printf("%3d",data[j]);
		printf("\n");
	}
	//printf("最终排序的结果为:");
	for (i=0;i<lensize;i++)
        //newdate[i]=data[i];
		printf("%3d",data[i]);
	printf("\n");

    return data;

}


void swap(int *a,int *b) //交換兩個變數
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

/**2 C Program for Selection Sort 选择排序*/
void selection_sort(int arr[], int len)
{
    int i,j;

        for (i = 0 ; i < len - 1 ; i++)
       {
                int min = i;
                for (j = i + 1; j < len; j++)     //走訪未排序的元素
                        if (arr[j] < arr[min])    //找到目前最小值
                                min = j;    //紀錄最小值
                swap(&arr[min], &arr[i]);    //做交換
        }

	

}

  

/*****************************************************************//**
 * \file   helloworld.C
 * \brief  业务操作方法
 * VSCODE   c11
 * \author geovindu,Geovin Du
 * \date   2023-09-19
***********************************************************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "include/SortAlgorithm.h"


typedef int ElementType;




int main()
{
    ////SetConsoleOutputCP(65001);  
    printf("hello word\n");
    printf("你好,中囯\n");
    int i;
    int *p;    
	char str[20];

    int data[12]={60,50,39,27,12,8,45,63,20,2,10,88};	/* 原始数据 */
	int lensize=sizeof(data) / sizeof(data [0]);//sizeof(data);
    p=BubbleSort(data,lensize);
    
	itoa(lensize, str, 10);
	printf("1共長度是 %d ",lensize);
	
    printf("最终排序的结果为:");
	for (i=0;i<lensize;i++)
		printf("%3d",p[i]);
    printf("\n");
    //选择排序
    int arr[] = { 64, 25, 12, 22, 11,88,28,100 };
    int n = sizeof(arr) / sizeof(arr[0]);
    selection_sort(arr, n);
    int ii;
    for(ii = 0; ii < n; ii++)
        printf("%d ", arr[ii]);
    printf("\n");


    system("pause");
    return 0;


}

  

 

标签:Sort,Selection,int,lensize,printf,sizeof,include,data
From: https://www.cnblogs.com/geovindu/p/17716088.html

相关文章

  • Python实现排序的方式有:内置函数sort()和sorted()以及lambda函数
    排序是计算机编程中经常需要用到的操作,它将一组数据按照规则重新排列,以便更好地处理数据。在Python中,有多种方法可以对数组进行排序,本文将从多个方面进行介绍。一、Python中的排序方法Python中内置了多个排序算法,包括冒泡排序、插入排序、选择排序、快速排序等。使用内置的sort(......
  • Go - Merge Sort
    MergeSort.gopackagemainfuncMergeSort(items[]int)[]int{n:=len(items)varcombined[]intswitch{casen<=1:combined=itemscasen==2:ifitems[0]<=items[1]{combined=items......
  • Linux命令(80)之sort
    linux命令之sort1.sort介绍linux命令sort用于将文本文件内容以行为单位加以排序;sort命令默认按每行的第一个字符排序,根据首字母的ASCII码值进行升序(从小到大排列)。sort的默认分隔符是空白(空格和tab),多少空白都算一个分隔符。2.sort用法sort[参数]filesort常用参数参数说明-n......
  • natsort.natsorted()-用于自然排序(natural sorting)字符串列表。
    参考:https://natsort.readthedocs.io/en/stable/api.html#natsort.natsorted语法格式natsort.natsorted(seq:Iterable[T],key:Optional[Callable[[T],Union[natsort.utils.SupportsDunderLT,natsort.utils.SupportsDunderGT,None]]]=None,reverse:bool=False,alg:......
  • elementUI表格多选框toggleRowSelection无效
    前言项目中遇到一个需求:弹框中有一个带分页的多选表格,在用户切换分页时,需要记录用户当前选择,在切换回上页时,显示用户已勾选项 使用elementUI表格多选框的toggleRowSelection发现并没有效果。一开始以为是切换分页后没有等待页面加载完成后就调用了该函数所以无效;解决1:添加......
  • 【转载】python 的sort()函数详解
    1.函数sort()是对列表就地排序>>>x=[8,9,0,7,4,5,1,2,3,6]>>>x.sort()>>>print(x)[0,1,2,3,4,5,6,7,8,9]2.函数sort()修改序列,不返回任何值>>>x=[8,9,0,7,4,5,1,2,3,6]>>>y=x.sort()>>>print(y)None>>>p......
  • GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例
     本文分享自华为云社区《GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例》,作者:O泡果奶~。本文针对SQL语句长时间执行不出来,且verbose执行计划中出现Sort+GroupAgg聚集方式的案例进行分析。1、【问题描述】语句执行时间过长,2300s+也无法得出结果。从verbose执行计划可......
  • c:BubbleSort
     #include<stdlib.h>#include<stdio.h>#include<string.h>typedefintElementType;int*BubbleSort(int*data,intlensize);intmain(){////SetConsoleOutputCP(65001);printf("helloword\n");printf("你......
  • python的sorted函数
    sorted 函数用于对可迭代对象进行排序。你可以使用 sorted 函数来按照默认的升序顺序对元素进行排序,也可以使用 key 参数来指定一个自定义的排序关键字函数。以下是 sorted 函数的基本用法以及关于 key 参数的详细说明:基本用法:sorted(iterable,key=None,reverse=Fals......
  • POJ 2299 Ultra-QuickSort ---归并排序 求逆序
    归并排序的模板。能求逆序。。。。#include<stdio.h>#include<string.h>intn;longlonga[500005],b[500005];longlongsum;voidmerge(intl,intm,intr){ inti=l,j=m+1,k=0; while(i<=m&&j<=r) { if(a[i]<=a[j]) b[k++]=a[i++]; else......