精华内容
下载资源
问答
  • 选择排序 C语言

    2021-03-14 20:22:02
    #include<stdio.h> int main(){ int a[8]={5,3,6,8,1,7,9,4}; int minPos; for(int i=0;i<8;i++){ minPos=i; for(int j=i+1;j<8;j++){ if (a[j]>a[minPos]) minPos=j;... pr.
    #include<stdio.h>
    
    int main(){
    	int a[8]={5,3,6,8,1,7,9,4};
    	int minPos;
    	for(int i=0;i<8;i++){
    	     minPos=i;
    		for(int j=i+1;j<8;j++){
    			if (a[j]>a[minPos])
    			minPos=j;
    		} 
    		int temp=a[i];
    		a[i]=a[minPos];
    		a[minPos]=temp;		
    	}
    	printf("%d\n",a[minPos]); 
    	for(int s=0;s<8;s++){
    		printf("%d",a[s]);
    	}
    	return 0;
    } 

     

    展开全文
  • 选择排序C语言实现

    2011-12-03 16:25:47
    选择排序C语言实现 选择排序C语言实现 选择排序C语言实现
  • 冒泡排序 简单选择排序 c语言基础 排序算法 数组操作 排序算法实验 简单的c语言程序 排序算法输出
  • 选择排序C语言

    2012-11-07 00:21:00
    j++){ //选择排序的最小值插入排序后的一位  if(temp>arr[j]){  index = j;  temp = arr[j];  }  }  arr[index] = arr[i];  arr[i] = temp;  } } int main(){  int arr[]={11, 2, 2, 4, 45, 23};  ...

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

    void traverse(int *arr, int len){
        int i;
        for(i=0; i<len; i++){
            printf("%d、", arr[i]);
        }
        printf("\n");
    }

    void SelectSort(int *arr, int len){
        int i,j,index,temp;
        for(i=0; i<len; i++){
            temp = arr[i];
            for(j=i+1; j<=len; j++){ //选择非排序的最小值插入排序后的一位
                if(temp>arr[j]){
                    index = j;
                    temp = arr[j];
                }
            }
            arr[index] = arr[i];
            arr[i] = temp;
        }
    }


    int main(){
        int arr[]={11, 2, 2, 4, 45, 23};
        traverse(arr, 6);
        SelectSort(arr, 6);
        traverse(arr, 6);
        return 0;
    }

    展开全文
  • 选择排序C语言描述

    2021-05-29 11:15:07
    选择排序C语言描述: 选择排序.c #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<sys/timeb.h> #define MAX ...

    选择排序C语言描述:

    选择排序.c

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<sys/timeb.h>
    #define MAX 10000
    long getSystemTime()
    {
            struct timeb tb;
            ftime(&tb);
            return tb.time * 1000 + tb.millitm;
    }
    //交换函数
    void Swap(int *a, int* b)
    {
            int temp = *a;
            *a = *b;
            *b = temp;
    }
    //打印函数
    void PrintArray(int arr[], int length)
    {
            for (int i = 0; i < length; i++)
            {
                   printf("%d", arr[i]);
            }
            printf("\n");
    }
    //冒泡排序
    void BubbleSort(int arr[], int length)
    {
            int flag = 0;
            for (int i = 0; i < length&&flag == 0; i++)
            {
                   flag = 1;//认为已经安排好
                   for (int j = length - 1; j > i; j--)
                   {
                           if (arr[j - 1] < arr[j])
                           {
                                  flag = 0;
                                  Swap(&arr[j - 1], &arr[j]);
                           }
                   }
            }
    }
    //选择排序
    void SelectSort(int arr[], int length)
    {
            int min = 0;
            for (int i = 0; i < length; i++)
            {
                   for (int j = i + 1; j < length; j++)
                   {
                           if (arr[j] < arr[min])
                           {
                                  min = j;
                           }
                   }
                   if (min != i)
                   {
                           Swap(&arr[min], &arr[i]);
                   }
            }
    }
    int main()
    {
            int arr[MAX];
            int arr2[MAX];
            srand((unsigned int)time(NULL));
            for (int i = 0; i < MAX; i++)
            {
                   int randNum = rand() % MAX;
                   arr[i] = randNum;
                   arr2[i] = randNum;
            }
            //冒泡排序
            long tbubble_start = getSystemTime();
            BubbleSort(arr, MAX);
            long tbubble_end = getSystemTime();
            printf("冒泡排序%d个元素,所需时间:%1d\n",MAX,tbubble_end-tbubble_start);
            //选择排序
            long tselect_start = getSystemTime();
            SelectSort(arr2,MAX);
            long tselect_end = getSystemTime();
            printf("选择排序%d个元素,所需时间:%1d\n",MAX,tselect_end-tselect_start);
            return EXIT_SUCCESS;
    }
    
    展开全文
  • 简单选择排序 C语言

    2020-11-20 12:28:37
    简单选择排序 (Simple Selection Sort)也称作直接选择排序。 算法步骤: 1) 设待排序的记录存放在数组Data[1…n]中。第一趟从Data[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为Data[k],交换...

    简单选择排序

    (Simple Selection Sort)也称作直接选择排序。

    算法步骤:

    1) 设待排序的记录存放在数组Data[1…n]中。第一趟从Data[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为Data[k],交换Data[1]和Data[k]。
    2) 第二趟从Data[2]开始,通过n- 2次比较,从n-1个记录中选出关键字最小的记录,记为Data[k],交换Data[2]和Data[k]。
    3) 依次类推,第i趟从Data[i]开始,通过 n - i 次比较,从n-i+1个记录中选出关键字最小的记录,记为Data[K],交换Data[i]和Data[k]。
    4) 经过n-1趟,排序完成。

    书上的例子:
    在这里插入图片描述
    时间复杂度

    O(n2n^2)

    空间复杂度

    O(1)

    算法特点:

    1 ) 就选择排序方法本身来讲,它是一种稳定的排序 方法,但图中例子所表现出来的现象是不稳定的,这是因为上述实现选择排序的算法采用“交换记录”的策略所造成的,改变这个策略可以写出不产生“不稳定现象”的选择排序算法。
    2 ) 可用于链式存储结构。
    3 ) 移动记录次数较少,当每一记录占用的空间较多时,此方法比直接插人排序快。

    完整代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAXSIZE 100  //顺序表最大容量,可以自行加大 
    
    typedef struct 
    {
    	int key;//关键字项 
    	char *otherinfo;//其他数据项 
    }ElemType;//记录类型 
    typedef struct
    {
    	ElemType Data[MAXSIZE+1];//静态顺序表的数据域,这里Data[0]为空闲或者为哨兵单元 
    	int length;//顺序表的长度 
    }SqList;//顺序表 
    
    void InitList(SqList &L)//顺序表的初始化 
    {
    	L.length = 0;//使顺序表长度归0,便是顺序表的初始化 
    }
    
    void CreateList(SqList &L)//顺序表的创建 
    {
    	printf("请输入:"); 
    	while(1)//建立一个死循环,循环终止条件是按了enter键 
    	{
    		L.length++;//顺序表长度加一 
    		if(L.length>MAXSIZE)//判断是否超出最大容纳量 
    		{
    			printf("顺序表已满!\n");
    			return ;
    		}
    		scanf("%d",&L.Data[L.length].key);//顺序表数据的输入 
    		if(getchar() == '\n')//循环终止条件 
    			break;
    	}
    }
    
    void InputList(SqList L)//顺序表的输出 
    {
    	int i;//记录次数 
    	if(L.length == 0)//判断顺序表是否为空 ,若为空结束该函数 
    	{
    		printf("顺序表是空的!\n");
    		return ;
    	}
    	printf("打印为:");
    	for(i=1;i<=L.length;i++)//利用循环打印顺序表中的数据 
    		printf("%d ",L.Data[i].key);	
    }
    
    void SelectSort(SqList &L)//简单选择排序 
    {
    	int i,j,//利用两层循环排序所有关键字 
    		k;//k为记录剩余关键字中最小的位置 
    	for(i=1;i<L.length;i++)//在L.Data[i…L.length]中选择关键字最小的记录 
    	{
    		k = i;
    		for(j=i+1;j<=L.length;j++)
    		{
    			if(L.Data[k].key > L.Data[j].key)//k指向此趟排序中关键字最小的记录 
    				k = j;
    		}
    		if(k != i)//交换Data[i]与Data[k] 
    		{
    			L.Data[0] = L.Data[i];
    			L.Data[i] = L.Data[k];
    			L.Data[k] = L.Data[0];
    		}
    	}
    }
    
    int main()
    {
    	SqList L;
    	InitList(L);//初始化顺序表 
    	CreateList(L);//创建顺序表 
    	SelectSort(L);//简单选择排序 
    	InputList(L);//打印排序后结果 
    	return 0;
    }
    
    

    在这里插入图片描述
    (完)

    展开全文
  • 选择排序c语言实现

    2021-05-23 19:25:24
    今天在写软考题的时候,又遇上了排序,我居然想不起来选择排序是怎么排序的了,所以找了段代码 #include<stdio.h> int main(void) { int i,j; int MinIndex; int buf; printf("请输入数组a\n"); int a[5...
  • 简单选择排序 c语言

    2019-03-25 21:12:11
    8643 简单选择排序时间限制:1000MS 内存限制:1000K 提交次数:2235 通过次数:1301题型: 编程题 语言: G++;GCC Description用函数实现简单选择排序,并输出每趟排序的结果 输入格式第一行:键盘输入待排序关键的个数n ...
  • 简单选择排序C语言

    2018-03-14 10:19:00
    思路:简单选择排序属于选择排序选择排序的本质是选取无序数列的最小值放到第一个位置,以此类比。时间复杂度O(n^2),稳定。void sort(int * data,int n) { int temp = 0,i = 0,j = 0,min = 0,var = 0; for(i = ...
  • 选择排序C语言

    2018-10-28 19:22:34
    简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[0]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[1]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录...
  • 选择排序 C语言描述

    2020-02-29 17:37:24
    "选择排序结束\n" ) ; printf ( "/*************************************************/\n" ) ; //选择排序结束 printf ( "\n" ) ; printf ( "排序结果为:" ) ; for ( i = 0 ; i < n ; i...
  • 选择排序 1、简单选择排序 算法思想:在无序序列a[0…n],第i趟排序从a[i…n]中选择关键字最小的元素与a[i]交换,每一趟排序都能确定一个元素的最终位置,经过n-1趟之后整个无序序列就会变成有序序列。 形如序列{45,...
  • 数组 选择排序 c语言

    千次阅读 2019-01-23 12:10:54
    解法一: #include <stdio.h> #define NUM 10 int main() { int a[NUM],i,j,k,t; printf("请输入%d个数",NUM); for(i=0;i<NUM;i++) scanf("%d",&a[i]); for(i=0;i<NUM-1;... ...
  • 运行程序先输入一个数,为数组的长度,代码会随机生成一个数组,然后分贝用选择排序和冒泡排序实现从小到大的排序. 实验结果: 代码: #include <iostream> #include <cstdlib> #include <ctime>...
  • 求救线性时间选择排序 这个代码是我自己靠思路写的,问题不断,请各位大佬,指定下,哪些地方问题很大,哪些地方可以提升提升 #include<stdio.h> #include<stdlib.h> int funcation(int *a,int p,int q,...
  • #include<stdio.h> #include<stdlib.h> void swap(int &a,int &b) { int temp=a; a=b; b=temp; } int main() { int i,n; scanf("%d",&n); int all[n]; for(i=0;i<...for(j
  • #include<stdio.h> #include<stdlib.h> #include<...void Bubble(int* arr,intlen)//冒泡排序 时间复杂度O(n^2) 稳定 { for(int i=0;i<len-1;i++) { for(int j=0;j<len-i...
  • //选择排序算法,从小到大 int temp = 0; for(int i = 0; i ; ++i) { for(int j = i+1; j ; ++j) { if(h_a[i] > h_a[j]) { temp = h_a[i]; h_a[i] = h_a[j]; h_a[j] = temp; } } } //冒泡排序算法,从小到大 for(int ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,850
精华内容 1,540
关键字:

选择排序c语言

c语言 订阅