C语言选择排序

#include <stdio.h>

//选择排序
void selectSort(int a[],int len){
    
    //外层循环控制趟数,每一趟把一个最小数放到没有排序的序列第一个位置
    int min;//保存最小的数的下标
    for (int i=0; i<len-1; i++) {
        
        //假设一个最小值
        min = i;
        
        //找实际的最小值的下标
        for(int j=i+1;j<len;j++){
            
            //找到比假设的数还小的数了
            if (a[j]<a[min]) {
                
                min = j; //min记录最小的数的下标
            }
            
        }
        
        //a[i]  和  a[min]进行交换
        int temp;
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
        
    }
    
}

int main(int argc, const char * argv[]) {
    
    int a[10]={12,3,4,5,8888,23,1,99,100,10};
    for (int i=0; i<10; i++) {
        printf("%d\t",a[i]);
    }
    printf("\n");
    //调用选择排序
    selectSort(a, 10);
    
    for (int i=0; i<10; i++) {
        printf("%d\t",a[i]);
    }
    
    return 0;
}
时间: 2024-12-05 21:52:04

C语言选择排序的相关文章

c语言 选择排序

选择排序 //    int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; //    int count = sizeof(array) / sizeof(array[0]); // //    for (int i = 0; i < count - 1; i++) { //        int minIndex = i; //        for (int j = minIndex + 1; j < count; j++) { //           

C语言——选择排序

---恢复内容开始--- 算法思想: n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区. -- ③第i趟排序 第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n).该趟排序从当前无序区中选出关键字最小的记

C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置

#include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7,2,3,1,6,8,4}; int i=0,j=0; int n = sizeof(a)/4; //外循环n-1轮 for(i=0;i<n-1;i++){ int pos = i;//始终指向最小的位置 for(j=i+1;j<n;j++){ if(a[j]<a[pos]){ pos = j

选择排序的3种语言实现方法(C java python)

1.选择排序的思路是:遍历数组,第一遍找出所有成员的最小值,放到数组下标为0的位置,第二遍从剩余内容中,再次找出最小值,放到数组下标为1的位置,以此类推,遍历完成所有的数组内容,最后结果就是:数组是按照从小到大顺序进行排序的. 2.按照C语言.java.python的顺序,分别实现如下,在对应编译平台上都是编译通过的: C语言版本: #include <stdio.h> int main() { int i; int j; int temp; int origin[] = {2,1,4,3,5

简单选择排序(Simple Selection Sort)的C语言实现

简单选择排序(Simple Selection Sort)的核心思想是每次选择无序序列最小的数放在有序序列最后 演示实例: C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp) 原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 1 #include <stdio.h> 2 #define LEN 6 3 4 typedef float keyType; 5 6 typedef struct{ 7 keyType score;

一招教你搞定c语言中冒泡和选择排序

一.选择排序 很多学习C语言的同学都被这两种排序而难倒.每次拿到这样一组数字就不知道从何下手了,要不就是那些运用的不太熟悉,每次写起代码来又得花一大半时间让费在这排序上,总是找不到一种好的办法去学习它.那么接下来,我将我所学到的排序方法分享给大家,告诉你们以后遇到这种排序千万不能急.当然,很多企业面试的时候种排序也是必考的,所以我们务必要把他们搞懂,不能让这么小小的排序阻挡了我们前进的步伐.好了,那我们来看看吧! 我选择的方法是函数调用的方法,将排序的具体方式通过函数调用到main函数中执行,具

排序(1)---------选择排序(C语言实现)

选择排序的基本思想: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 我的通俗解释: ①第一遍先在整个序列中寻找到最小值,将其移到首位,序列被分为1,n-1; ②继续在n-1中寻找最小值,将其移到n-1的首位,也就是整个序列的第二位 ③以此类推,反复操作步骤②,得到结果 选择排序的主要优

排序算法——选择排序(js语言实现)

选择排序:顾名思义选择,选择排序属于O(N^2)的排序算法,意思就是选择数组中的最小的拿出来放在第一位,然后再剩下的数里面,选择最小的,排在第二位,以此类推. 例如:8  3  4  5  6  2  1  7 第一次:寻找数组中最小的数1,然后和8替换,得到 1 3 4 5 6 2 8 7 第二次:因为1的位置已经确定,所以只需要找剩下数组中最小的就行了,2和3互换得到1 2 4 5 6 3 8 7 第三次:1和2的位置已经确定,就看剩下的数中最小的数,3和4互换,结果是1 2 3 5 6 4

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置 3 交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动 4 不稳定 5 */ 6 #include<windows.h> 7 #include<stdio.h> 8 void main(){ 9 int i,j,arr[10