c: Selection Sort
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 selectionSort(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 selectionSort(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]);
selectionSort(arr, n);
int ii;
for(ii = 0; ii < n; ii++)
printf("%d ", arr[ii]);
printf("\n");
system("pause");
return 0;
}

哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
浙公网安备 33010602011771号