1. 程式人生 > >C經典 選擇排序

C經典 選擇排序

#include <stdio.h>
/*
 選擇排序 就是每次把最小的數排到前面

 */
int main(int argc, const char * argv[])
{

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

    int arr[] = {2,3,5,1,643,21,24};

    selectSort(arr, sizeof(arr)/sizeof(int));

    printf("\n");
    return 0;
}

void selectSort(int arr[], int len){
//為什麼是i < len - 1; 因為i跟j比,j是最後一個
for (int i = 0; i < len - 1; i++) { // 為什麼是i+1;因為本身不跟本身比 for (int j = i + 1; j < len; j ++) { if (arr[i] > arr[j]) { arr[i] = arr[i] ^ arr[j]; arr[j] = arr[i] ^ arr[j]; arr[i] = arr[i] ^ arr[j]; } } } for
(int i = 0; i < len ; i ++) { printf("%d\t", arr[i]); } }

相關推薦

C經典 選擇排序

#include <stdio.h> /* 選擇排序 就是每次把最小的數排到前面 */ int main(int argc, const char * argv[]) { v

C語言選擇排序

c/c++ 排序 #include <iostream> #include <stdio.h> using namespace std; int data[]={2,1,3,8,6,7,9}; int main(int argc, char* argv[]) {

資料結構與演算法C++之選擇排序

本篇文章是使用C++實現的選擇排序演算法,演算法複雜度為O(n2) 選擇排序演算法初始時在序列中找到最小元素,放到序列的起始位置作為已排序序列;然後,再從剩餘未排序元素中繼續尋找最小元素,放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 如上圖陣列中有8個元素,首先將第一個元素

C語言-選擇排序

#include <stdio.h> //選擇排序 void selectSort(int *p,int len) { int i,j; for(i = 0;i<len;i++) { for(j = i+1;j<

ACMNO.18 C語言-選擇排序選擇法對10個整數從小到大排序。 輸入 10個整數 輸出 排序好的10個整數

題目描述 用選擇法對10個整數從小到大排序。 輸入 10個整數 輸出 排序好的10個整數 樣例輸入 4 85 3 234 45 345 345 122 30 12 樣例輸出 3 4 12 30 45 85 122 234 345 345

C語言 選擇排序

對一般陣列: #include<stdio.h> #include<string.h> #include<stdlib.h> void selectSort01(int arr[],int len) {     for(int i =

C程式設計——選擇排序

1、程式檔案 #include <stdio.h> // 兩兩交換 void mySwap(int *a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } // 選擇排序 void mySort(

Linux C++ 直接選擇排序,氣泡排序

選擇排序的思想是:每次從待排序中選擇最小(大)的元素插入已經排好的序列中。 /*直接選擇排序*/ #include <iostream> using namespace std; void swapp(int &a,int &b) { int temp = a; a

C++實現選擇排序

#include "stdafx.h" #include<iostream> using namespace std; #define N 10 int _tmain(int argc, _TCHAR* argv[]) {//選擇法排序,第1輪:先選出最小值和第一個數交換 //

C#-控制檯-選擇排序---ShinePans

//插入排序 using System; class program { static void Main(string[] args) { int[] arr = new int[] { 12, 23, 34, 54, 63, 21, 3,

C++ 簡單選擇排序

基本思想:第i趟在n-i+1(i=1,2,....,n-1)個記錄中選取關鍵碼最小的記錄作為有序序列的第i個記錄。 需要解決的問題? (1)如何在待排序序列中選出關鍵碼最小的記錄? (2)如何確定待排序序列中最小的記錄在有序序列中的位置? 簡單選擇排序實質是一種交換排序

選擇排序C++實現選擇排序程式碼

#include<iostream> using namespace std; void print(int a[], int n) { for(int j= 0; j<n; j++) { cout<<a[j

c#實現選擇排序演算法

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 選擇排序

C語言選擇排序排序

#include<stdio.h> #define N 5 main() {int a[5];int i,j,k,t;printf("初始化陣列:");for(i=0;i<5;i++

經典排序算法--簡單選擇排序

減少 pac 高效 str creat election pub 臨時 ack 算法簡介 簡單選擇排序是一種選擇排序。 選擇排序:每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。 白話理解   依然已排隊為例,在排隊時,有的老師

選擇排序——C實現

return 最大 n-1 spa 工作 cnblogs ret clu 輸出 選擇排序:   選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩余未排序元素中繼續

經典排序算法——選擇排序

margin mil snippet 最小 round write alt temp sub 對於一個int數組。請編寫一個選擇排序算法。對數組元素排序。 給定一個int數組A及數組的大小n,請返回排序後的數組。 測試例子: [1,2,3,5,2,

選擇排序C++實現

運行 等於 排序 urn 結束 align 想是 mes 存儲 選擇排序之C++實現 一、源代碼:SelectSort.cpp 1 /* 2 選擇排序(從小到大)的基本思想是,首先,選出最小的數,放在第一個位置; 3 然後,選出第二小的數,放在第二個位置; 4 以

C 冒泡排序選擇排序

true 不能 學習 print 出現 std src log stdio.h 冒泡排序 理論: 從第一個數開始,將相鄰的兩個數比較,第一個數和第二個數比較.....,要是是從小到大的排序,要是後面的數比前面的大則交換兩個的位置,這樣第一輪比較基數後

使用C語言和Java分別實現冒泡排序選擇排序

都沒有 img 容易 n) 不穩定排序 實現 imp 結果 輸出 經典排序算法——冒泡和選擇排序法 Java實現冒泡排序 基本思想是,對相鄰的元素進行兩兩比較,順序相反則進行交換,這樣,每一趟會將最小或最大的元素放到頂端,最終達到完全有序,首先看個動圖: 我們要清楚一點,